Gibt es einen signifikanten Unterschied zwischen
pip install -e /path/to/mypackage
und die setuptools variante?
python /path/to/mypackage/setup.py develop
python
pip
setuptools
PeterE
quelle
quelle
Antworten:
Vermeiden Sie es,
setup.py
direkt anzurufen. Dadurch wird pip nicht ordnungsgemäß mitgeteilt, dass Sie Ihr Paket installiert haben.Mit
pip install -e
:Mehr: docs
Lesen Sie auch die Setuptools docs .
quelle
Ein weiterer Unterschied:
pip install -e
verwendet das Rad, währendpython setup.py develop
es nicht verwendet wird.
Mit
install
können Sie das gleiche Verhalten erzielen, indem Sie verwendenpip install -e /path/to/package --no-use-wheel
Weitere Infos zu Rädern: Python-Räder
quelle
--no-use-wheel
DEPRECATED für--no-binary :all:
Ein weiterer Unterschied, der begünstigt werden kann,
pip install -e
besteht darin, dass, wenn Ihr Projekt Abhängigkeiten ininstall_requires
in hatsetup.py
,pip install -e .
Abhängigkeiten mit pip installiert werden, währendpython setup.py develop
mit installiert werden könneneasy_install
, und Probleme bezüglich 'ei-info' verursachen können, wie oben erwähnt. Beiinstall-requires
Verwendungdependency_links
mit benutzerdefinierten Git-URLs mit angehängten Eikennungen kann dies besonders ärgerlich sein.quelle
pip install -e .
, wird im Wesentlichen ein Symlink im entsprechenden Python-Site-Packages-Verzeichnis erstellt, der auf Ihre Arbeitskopie verweist. Wenn Codeänderungen an dieser Arbeitskopie vorgenommen werden, wird diese sofort in der "installierten" Version angezeigt, sodass Sie die Installationsbefehle nicht erneut ausführen müssen. Dies ist in erster Linie nützlich für die Entwicklung in einem Repository, das ein installierbares Paket darstellt, kann aber auch nützlich sein, um beispielsweise eine Sammlung von Modulen mit nur absoluten Importen usw. zuEin weiterer Unterschied: Wenn Sie
python setup.py develop
eine Version ausführen , die als Vorabversion betrachtet wird (möglicherweise, weil Sie sie von einem Git-Klon ausführen, wenn Sie eine Version nicht ausgecheckt haben), aktivieren Sie die Installation von Vorabversionen Ihrer Abhängigkeiten . Auf der anderen Seitepip install --editable
müssten Sie--pre
explizit übergeben, wenn Sie diese Vorabversionen möchten.(Sehen Sie sich das CI-Protokoll mit versehentlich verwendeten Vorabversionen an und vergleichen Sie es hier mit einem festen Build .)
quelle