2015-05-18 33 views
70

C'è qualche differenza significativa tra"PIP installare --editable ./" vs "python setup.py sviluppare"

pip install -e /path/to/mypackage 

e la variante setuptools?

python /path/to/mypackage/setup.py develop 
+1

Questo sembra essere un collegamento aggiornato che descrive la modalità di sviluppo: https://setuptools.readthedocs.io/en/latest/setuptools.html?highlight=development%20mode#develop-deploy-the-project-source-in- development-mode – PaulR

risposta

55

Non c'è alcuna grande differenza.

Con pip install -e per progetti locali, la directory "SomeProject.egg-info" è stato creato relativo al percorso del progetto. Questo è uno dei vantaggi rispetto all'utilizzo di setup.py develop, che crea le "egg-info" direttamente relative alla directory di lavoro corrente di . Più: docs

Leggi anche gli setuptools' docs.

41

Ancora una differenza: pip install -e usi volante mentre python setup.py develop
non lo usa.

Con install, si potrebbe ottenere lo stesso comportamento utilizzando
pip install -e /path/to/package --no-use-wheel

Maggiori informazioni su ruote: python wheels

+4

Si noti che, in base a https://pip.pypa.io/en/stable/reference/pip_install/, '--no-use-wheel' DEPRECATO in favore di' --no-binary: all : ' – Nzbuu

3

Un'altra differenza che possono favorire pip install -e è che se il progetto ha dipendenze in install_requires in setup.py, quindi pip install -e . installa dipendenze con pip, mentre python setup.py develop può installare con easy_install e potrebbe causare problemi con: 'egg-info' come menzionato sopra. Quando install-requires utilizza dependency_links con URL di git personalizzati, con identificatori di uova allegati, questo può essere particolarmente fastidioso.

Problemi correlati