Existe alguma diferença significativa entre
pip install -e /path/to/mypackage
e a variante setuptools?
python /path/to/mypackage/setup.py develop
python
pip
setuptools
PeterE
fonte
fonte
Respostas:
Tente evitar ligar
setup.py
diretamente, pois isso não informa adequadamente ao pip que você instalou seu pacote.Com
pip install -e
:Mais: docs
Leia também os documentos das ferramentas de instalação .
fonte
Mais uma diferença:
pip install -e
usa roda enquantopython setup.py develop
não a usa.
Com
install
, você pode obter o mesmo comportamento usandopip install -e /path/to/package --no-use-wheel
Mais informações sobre rodas: rodas python
fonte
--no-use-wheel
DEPRECATED em favor de--no-binary :all:
Outra diferença que pode favorecer
pip install -e
é que, se seu projeto tem dependências eminstall_requires
emsetup.py
, em seguida,pip install -e .
instala as dependências com pip, enquantopython setup.py develop
pode instalar comeasy_install
, e pode causar problemas re: 'ovo-info' como mencionado acima. Quandoinstall-requires
usadodependency_links
com URLs git personalizados, com identificadores de ovo anexados, isso pode ser especialmente irritante.fonte
pip install -e .
, ele basicamente cria um link simbólico no diretório de pacotes de sites Python relevante para apontar para sua cópia de trabalho. Como as alterações de código são feitas nessa cópia de trabalho, ela é refletida instantaneamente na versão "instalada", portanto, você não precisa executar novamente os comandos de instalação à medida que avança. Isto é principalmente útil para o desenvolvimento em um repositório que representa um pacote instalável, mas também pode ser útil para, por exemplo, escrever algum conjunto de módulos com apenas importações absolutos, etc.Outra diferença: quando você executa
python setup.py develop
uma versão que é considerada um pré-lançamento (talvez porque você esteja executando a partir de um clone do git quando não fez check-out de um release), habilitará a instalação de pré-lançamentos de suas dependências . Por outro lado,pip install --editable
você teria que passar--pre
explicitamente se quiser esses pré-lançamentos.(Consulte o log do IC com pré-lançamentos usados acidentalmente e compare-o com uma compilação fixa aqui .)
fonte