我正在关注使用virtualenv
的Flask教程,并使用它构建了一个应用程序目录树,如下所示:
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
之后无法正常工作
答案 0 :(得分:9)
首先,您提到的命令并不等效,具体而言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
则不会。