Python setup.py开发与安装

Python setup.py开发与安装,python,setuptools,Python,Setuptools,setup.pydevelope和install中的两个选项让我感到困惑。根据这一点,使用develope创建指向站点包目录的特殊链接 人们建议我使用python setup.py install进行新的安装,并在对安装文件进行任何更改后使用python setup.py develop 有人能解释一下这些命令的用法吗?python setup.py install用于安装(通常是第三方)您不打算自己开发/修改/调试的软件包 对于您自己的东西,您希望首先安装软件包,然后能够经常编辑代码,而无需每

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

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


有人能解释一下这些命令的用法吗?

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

对于您自己的东西,您希望首先安装软件包,然后能够经常编辑代码,而无需每次重新安装软件包—这正是
python setup.py develope
所做的:它安装软件包(通常只是一个源文件夹)在将代码安装到(虚拟)环境后,您可以方便地编辑代码,并使更改立即生效

请注意,强烈建议使用
pip install.
(install)和
pip install-e.
(developer install)来安装软件包,因为直接调用
setup.py
会对许多依赖项执行错误操作,例如拉预发布和不兼容的软件包版本,或者使用来自的
pip
使软件包难以卸载。
develope
不会安装软件包,但会在部署目录中创建一个
.egg链接
,返回到项目源代码目录

因此,它与安装类似,但不是复制到
站点包
,而是添加了一个符号链接(
.egg链接
充当多平台符号链接)


这样,您就可以编辑源代码并直接查看更改,而无需在每次进行一点更改时重新安装。这在您是该项目的开发人员时非常有用,因此名为
develope
。如果您只是在安装其他人的软件包,您应该使用
安装

当使用
开发
方法时,人们可能会发现另一件有用的事情是
--user
选项,无需sudo即可安装。例:

python setup.py develop --user
而不是

sudo python setup.py develop

埃里克是对的。还需要知道的是,
setup.py develope
附带了一个
--uninstall
选项,用于在黑客攻击python包时进行卸载。最后一个想法是,在黑客攻击python包时,
setup.py develope
的另一个选项是使用“简单(但明确)的路径修改来正确解析包”re我在使用
python setup.py develope
尝试为本地开发设置云高计时遇到问题。我最终使用了
pip安装-e PATH
(在virtualenv中)来避免这种情况。不确定这是否重要,但如果我使用的是python 3等,是否必须以不同的方式运行
python setup.py develop
?它与python 3一起工作,但不要忘记删除当前的任何pip安装,因为它们会发生冲突(当时发生在我身上).IIUC您永远不应该在您的系统中使用
setup.py develope
,这只在虚拟环境中才有意义。@dividebyzero您的意思是应该始终使用
python setup.py develope--user
,如果我理解正确的话?另外,您能告诉我使用
python setup.py develope--user
安装包的位置吗nks!我认为
--user
将安装在您家庭帐户的一个目录中,并且不会影响系统中的其他用户。
develope
将链接到您的项目源目录,而不是实际复制所有内容。
develope--user
应该可以,并且
develope
也可以在虚拟环境中。只有
de>对实际系统进行开发是很奇怪的,因为您可能会有其他用户在您个人的项目源代码副本中使用指向项目的东西。许多(大多数?)人没有在多用户系统上运行,尽管我不知道这如何回答问题。