当从GitHub克隆Python软件包时,应该将其克隆到哪里?

6
问题:我想安装的包在pip上已经过时,conda仓库里也没有。因此,我使用以下命令从github安装python包:
git clone package_url 
cd package_name
python setup.py

我应该从conda或pip通常安装我的软件包的目录中下载软件包吗?例如,我应该从以下位置运行git clone吗:
['/Users/home/anaconda/lib/python2.7/site-packages',
'/Users/home/anaconda/lib/site-python']

我是否可以只从任意目录运行git clone呢?这个问题的关键在于我在像/Users/home/Downloads这样的目录中下载了git,然后当我运行setup.py文件时,我只会安装在/Users/home/Downloads目录中,导入时我将无法找到该包。

被接受的答案:我可以在终端中从任何目录运行git clone命令。然后,我可以转换到新建立的克隆包目录,并运行setup.py脚本。运行setup.py脚本应该会“在调用python时使用的任何python的site-packages中自动安装[该包]”。希望这能帮助那些过度担心运行setup.py文件的人。


2
通常情况下,您会从包含 setup.py 的文件夹中运行它。 - Suever
抱歉,我的表述不够清晰。我已经编辑了我的问题以反映更加明确的意思。 - dnck
当您调用python setup.py install时,它会自动安装在您使用的任何pythonsite-packages目录中。 - Suever
看起来Suever已经回答了这个问题。我可以从任何目录中运行git clone命令。然后,我进入新建立的目录,并运行setup.py脚本,包将被“自动安装在调用python时使用的任何python的site-packages中”。谢谢! - dnck
3个回答

3

请在包含setup.py的文件夹中运行它。

执行:

python setup.py install

这将安装软件包到适当的目录。文件已经包含了把软件包放入正确安装目录的逻辑,您不需要担心软件包如何到达其安装目录。


啊,这就是正确的答案吗?当我运行git clone package_url时,我不必担心切换到适当的子目录吗?我担心设置只会在我克隆到的目录中进行... - dnck
你必须进入包含 setup.py 的目录才能运行此命令。请使用 cd 命令进入该目录。 - Moses Koledoye
非常抱歉,因为我的问题表述不清楚。我问的是在哪里运行git clone package_url命令,而不是setup.py命令。对我来说,很明显我需要在包含setup.py的文件夹中运行程序。 - dnck
啊,没有任何与此相关的规格说明。您可以使用任何文件夹,但是克隆将在运行命令的位置创建自己的文件夹。 - Moses Koledoye
所以,现在我克隆到一个文件夹中,并在新文件夹中运行了setup.py,setup.py文件从一个目录复制到一个新建立的目录。这似乎是一种不优雅的做法。我可以安全地删除原始克隆副本吗? - dnck
如果安装已经成功完成,那么是的,您可以删除原始克隆副本。 - Moses Koledoye

1

使用pip直接指向URL,这个包的使用会更加简单:

pip install git+http://....git

URL前面的git+是必需的。

你甚至可以更进一步,安装特定的分支:

pip install git+http://....git@branchname

0

您可以按照您所述的方式运行setup.py文件,然后按照以下方式进行安装:

python setup.py install

通常情况下,这将导致将您想要的软件包安装到Python路径中。

那么,当运行 git clone package_url 命令时,我是否需要担心自己所在的目录? - dnck
不,你不必这样做,只需以那种方式运行setup.py即可。 - mase_cv_ml

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接