"pip install --editable ./"vs"python setup.py develop"

Pet*_*erE 146 python pip setuptools

两者之间是否有任何显着差异

pip install -e /path/to/mypackage
Run Code Online (Sandbox Code Playgroud)

和setuptools变种?

python /path/to/mypackage/setup.py develop
Run Code Online (Sandbox Code Playgroud)

sob*_*evn 107

没有太大的区别.

setup.py:

对于本地项目,相对于项目路径创建"SomeProject.egg-info"目录.这是一个优于使用的优点 pip install -e,它直接相对于当前工作目录创建"egg-info".

更多:docs

另请阅读setuptools的文档.

  • 更改文件后,用户是否必须再次运行“python setup.py sdist”才能使更改生效? (2认同)

use*_*286 69

还有一个区别:pip install -e使用轮子而不使用轮子 python setup.py develop
.

使用install,您可以通过使用实现相同的行为
pip install -e /path/to/package --no-use-wheel

关于车轮的更多信息:蟒蛇轮

  • 请注意,根据https://pip.pypa.io/en/stable/reference/pip_install/,`-- no-use-wheel`弃用,而不是`--no-binary:all:` (17认同)

ely*_*ely 29

这可能有利于另一个区别pip install -e是,如果你的项目中有依赖性install_requiressetup.py,然后pip install -e .安装依赖与画中画,同时python setup.py develop可以与安装easy_install,并可能导致问题的回复:"蛋信息"如上所述.当install-requires使用dependency_links自定义git URL时,附带的egg标识符,这可能会特别烦人.

  • 这完全解释了为什么我的私人软件包无法安装。它在我的 devpi 服务器上,而不是 pypi 上。谢谢。 (2认同)

Jan*_*rát 6

还有一个区别:当您运行python setup.py develop一个被视为预发行版的版本时(可能是因为您在未签出发行版时从 git 克隆运行它),那么您将启用依赖项预发行版的安装。另一方面,如果您想要这些预发布,则pip install --editable必须明确通过。--pre

(请参阅意外使用预发布的 CI 日志,并将其与此处的固定版本进行比较。)