setup.py develop
和install
中的两个选项让我感到困惑。根据此site,使用develop
创建一个指向site-packages目录的特殊链接。
人们建议我使用python setup.py install
进行全新安装,并在对安装文件进行任何更改后使用python setup.py develop
。
有人能说清楚这些命令的使用吗?
答案 0 :(得分:367)
python setup.py install
用于安装(通常是第三方)软件包,您不打算自行开发/修改/调试。
对于你自己的东西,你想先安装你的软件包,然后能够经常编辑代码而不必每次都必须重新安装软件包 - 而这正是{{1确实:它安装包(通常只是一个源文件夹)的方式允许您在安装到(虚拟)环境后方便地编辑代码,并使更改立即生效。
请注意,强烈建议使用python setup.py develop
(安装)和pip install .
(开发人员安装)来安装软件包,因为直接调用pip install -e .
会对许多依赖项执行错误操作,例如pull preleases和不兼容的软件包版本,或者使用setup.py
难以卸载软件包。
答案 1 :(得分:94)
来自documentation。 develop
不会安装软件包,但会在部署目录中创建一个.egg-link
,返回项目源代码目录。
所以它就像安装一样,但不是复制到site-packages
,而是添加符号链接(.egg-link
充当多平台符号链接)。
通过这种方式,您可以编辑源代码并直接查看更改,而无需每次进行一些更改时都必须重新安装。当您是该项目的开发人员时,这非常有用,因此名称为develop
。如果您只是安装其他人的软件包,则应使用install
答案 2 :(得分:16)
人们在使用develop
方法时可能会觉得有用的另一件事是--user
选项无需sudo即可安装。例如:
python setup.py develop --user
而不是
sudo python setup.py develop