2017-07-31 106 views
4

我正在關注一個Flask教程,其中使用了我使用的virtualenv,並且使用它我構建了一個如下所示的應用程序目錄樹:在virtualenv中設置:`pip install -e .`和`python setup.py install`

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

裏面我venv教程告訴我跑pip install -e .這似乎可以用我的setup.py安裝依賴和我的應用程序。

爲什麼本教程讓我運行pip install -e .?爲什麼不是python setup.py install?有什麼區別?

(FWIW,pip install -e .export FLASK_APP=app; flask run工作正常,但一個python setup.py install後不工作)

回答

3

首先,你提到的是不等價的,具體python setup.py install不給你一個可編輯安裝的命令。的pip <-> python setup.py當量是:

Editable pip     setup.py 
yes  pip install -e .  python setup.py install  
no   pip install .   python setup.py develop  

隨着中說,使用pip在一般推薦的範圍內的原因如下:

  • 依賴關係被自動安裝
  • 有一種簡單的方法來卸載

在你的情況下,我高度懷疑你的軟件包有一個依賴項,如果你使用pip,bu如果你使用python setup.py install則不行。