我正在遵循一个 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 run
pip 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
则不会。