394

setup.py 中有两个选项developinstall我感到困惑。根据这个站点,使用develop会创建一个指向站点包目录的特殊链接。

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

任何人都可以阐明这些命令的用法吗?

4

3 回答 3

583

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

对于你自己的东西,你想先安装你的包,然后能够经常编辑代码,而不必每次都重新安装包——这正是python setup.py develop它所做的:它安装包(通常只是一个源文件夹)以一种允许您在将代码安装到(虚拟)环境后方便地编辑代码并让更改立即生效的方式。


注意:强烈建议使用pip install .(regular install) 和pip install -e .(developer install) 来安装包,因为直接调用setup.py会对许多依赖项做错误的事情,例如拉取预发布和不兼容的包版本,或者使包难以卸载pip.

于 2013-09-27T10:40:46.907 回答
146

文档中。develop不会安装包,但会在部署目录中创建一个回到.egg-link项目源代码目录。

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

这样,您可以编辑源代码并直接查看更改,而无需每次进行一些更改时都重新安装。当您是该项目的开发人员时,这很有用,因此名称为develop. 如果你只是安装别人的包,你应该使用install

于 2014-10-27T13:40:06.493 回答
30

develop人们在使用该方法时可能会发现另一件有用的事情是--user不使用 sudo 进行安装的选项。前任:

python setup.py develop --user

代替

sudo python setup.py develop
于 2016-11-14T21:32:17.367 回答