Python setup.py develop vs install

时间:2013-09-27 10:39:13

标签: python setuptools

setup.py developinstall中的两个选项让我感到困惑。根据此site,使用develop创建一个指向site-packages目录的特殊链接。

人们建议我使用python setup.py install进行全新安装,并在对安装文件进行任何更改后使用python setup.py develop

有人能说清楚这些命令的使用吗?

3 个答案:

答案 0 :(得分:367)

python setup.py install用于安装(通常是第三方)软件包,您不打算自行开发/修改/调试。

对于你自己的东西,你想先安装你的软件包,然后能够经常编辑代码而不必每次都必须重新安装软件包 - 而这正是{{1确实:它安装包(通常只是一个源文件夹)的方式允许您在安装到(虚拟)环境后方便地编辑代码,并使更改立即生效。

请注意,强烈建议使用python setup.py develop(安装)和pip install .(开发人员安装)来安装软件包,因为直接调用pip install -e .会对许多依赖项执行错误操作,例如pull preleases和不兼容的软件包版本,或者使用setup.py难以卸载软件包。

答案 1 :(得分:94)

来自documentationdevelop不会安装软件包,但会在部署目录中创建一个.egg-link,返回项目源代码目录。

所以它就像安装一样,但不是复制到site-packages,而是添加符号链接(.egg-link充当多平台符号链接)。

通过这种方式,您可以编辑源代码并直接查看更改,而无需每次进行一些更改时都必须重新安装。当您是该项目的开发人员时,这非常有用,因此名称为develop。如果您只是安装其他人的软件包,则应使用install

答案 2 :(得分:16)

人们在使用develop方法时可能会觉得有用的另一件事是--user选项无需sudo即可安装。例如:

python setup.py develop --user

而不是

sudo python setup.py develop