在 virtualenv 中设置:"pip install -e ." vs 'python set



我正在遵循一个 Flask 教程,让我使用virtualenv,并用它构建了一个如下所示的应用程序目录树:

app/
|__app/
|__app.egg-inf/
|__setup.py
|__venv/

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

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

(FWIW,export FLASK_APP=app; flask runpip install -e .后工作正常,但python setup.py install后不起作用(

首先,您提到的命令并不等效,特别是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    

话虽如此,出于一系列原因,通常建议使用pip

  • 自动安装依赖项
  • 有一种简单的卸载方法

在您的情况下,我高度怀疑您的软件包具有依赖项,如果您使用 pip,则会自动安装该依赖项,但如果您使用python setup.py install则不会。

最新更新