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