在virtualenv中设置:`pip install -e .` vs`python setup.py install`

Jui*_*icy 9 python pip virtualenv setup.py

我正在关注一个让我使用的Flask教程virtualenv,并使用它构建了一个app目录树,如下所示:

app/
|__app/
|__app.egg-inf/
|__setup.py
|__venv/
Run Code Online (Sandbox Code Playgroud)

在我venv的教程内部告诉我运行pip install -e .似乎正在使用我setup.py来安装依赖项和我的应用程序.

为什么教程让我运行pip install -e .?为什么不python setup.py install呢?有什么区别?

(FWIW,之后export FLASK_APP=app; flask run工作正常,pip install -e .但在a 之后不起作用python setup.py install)

Jon*_*ler 11

首先,您提到的命令不相同,特别python setup.py install是不提供可编辑的安装.的pip <-> python setup.py等同物是:

Editable   pip                    setup.py
yes        pip install -e .       python setup.py develop    
no         pip install .          python setup.py install    
Run Code Online (Sandbox Code Playgroud)

话虽如此,pip一般建议使用,原因有以下几点:

  • 依赖关系会自动安装
  • 有一种简单的卸载方式

在您的情况下,我非常怀疑您的包具有依赖关系,如果您使用pip,则会自动安装,但如果您使用,则不会自动安装python setup.py install.

  • 我相信 2 月 21 日的编辑将 setup.py 下的“install”和“develop”放在了错误的行上。 (2认同)