Duas opções em setup.py develope installestão me confundindo. De acordo com este site , usar developcria um link especial para o diretório de pacotes de sites.
As pessoas sugeriram que eu o usasse python setup.py installpara uma instalação nova e python setup.py developdepois que quaisquer alterações fossem feitas no arquivo de instalação.
Alguém pode lançar alguma luz sobre o uso desses comandos?
python setup.py install é usado para instalar pacotes (normalmente de terceiros) que você não vai desenvolver / modificar / depurar.
Para seu próprio material, primeiro você deseja instalar o pacote e, em seguida, editar o código com frequência, sem precisar reinstalá-lo todas as vezes - e é exatamente python setup.py developisso que faz: ele instala o pacote (normalmente apenas uma pasta de origem) de uma forma que permita editar convenientemente seu código após a instalação no ambiente (virtual) e fazer com que as alterações entrem em vigor imediatamente.
Observe que é altamente recomendável usar pip install .(instalar) e pip install -e .(instalação do desenvolvedor) para instalar pacotes, pois a chamada setup.pydireta fará coisas erradas para muitas dependências, como pré-lançamentos de versões anteriores e versões de pacotes incompatíveis, ou dificultará a desinstalação do pacote pip.
Erik está certo. Também é útil saber que ele setup.py developvem com uma --uninstallopção para quando você terminar de invadir.
philadams
5
Último pensamento aqui é que uma outra opção para setup.py developquando hackers em um pacote de python é usar "simples (mas explícito) modificação caminho para resolver o pacote corretamente" re Kenneth Reitz
philadams
4
Encontrei problemas python setup.py developao tentar configurar o Ceilometer para desenvolvimento local. Acabei usando pip install -e PATH(dentro de um virtualenv) para evitar problemas que surgiram viaeasy_install .
Joe D'Andrea
1
não tenho certeza se isso importa, mas se eu estiver usando python 3 etc, é preciso executar de maneira python setup.py developdiferente?
Charlie Parker
1
Funciona com python3, mas não se esqueça de remover qualquer instalação atual de pip que você possa ter, pois elas se chocam (aconteceu comigo no momento).
Léo Germond
124
A partir da documentação . O developnão instalará o pacote, mas criará um .egg-linkno diretório de implantação de volta ao diretório de código-fonte do projeto.
Portanto, é como instalar, mas em vez de copiar para o site-packagesarquivo, ele adiciona um link simbólico (que .egg-linkatua como um link simbólico multiplataforma).
Dessa forma, você pode editar o código-fonte e ver as alterações diretamente, sem precisar reinstalá-lo sempre que fizer uma pequena alteração. Isso é útil quando você é o desenvolvedor desse projeto, daí o nome develop. Se você está apenas instalando o pacote de outra pessoa, deve usarinstall
Como você nunca deve estar setup.py developem seu sistema, isso só faz sentido em um ambiente virtual.
dividebyzero
2
@dividebyzero Quer dizer que sempre se deve usar python setup.py develop --user, se entendi corretamente? Além disso, você poderia me dizer onde o pacote está instalado usando python setup.py develop --user? Obrigado!
ROBOT AI
2
Acho que o --userinstalará em um diretório na sua conta pessoal e não afetará outros usuários no seu sistema. O developfará links para o diretório de origem do projeto em vez de realmente copiar tudo. develop --userdeve estar OK, e developem um virtualenv também. Apenas developo sistema real é estranho, porque você pode ter outros usuários usando algo que aponta para o projeto em sua cópia pessoal do código-fonte do projeto.
Div #
4
Muitos (a maioria?) As pessoas não estão em execução em sistemas multi-utilizador embora
patstew
1
@boatcoder, Mac e Linux (e Windows) podem ser sistemas com capacidade para vários usuários , mas provavelmente o desenvolvedor é a única conta de usuário (real) de sua área de trabalho, e acredito que é isso que pastew significava.
setup.py develop
vem com uma--uninstall
opção para quando você terminar de invadir.setup.py develop
quando hackers em um pacote de python é usar "simples (mas explícito) modificação caminho para resolver o pacote corretamente" re Kenneth Reitzpython setup.py develop
ao tentar configurar o Ceilometer para desenvolvimento local. Acabei usandopip install -e PATH
(dentro de um virtualenv) para evitar problemas que surgiram viaeasy_install
.python setup.py develop
diferente?A partir da documentação . O
develop
não instalará o pacote, mas criará um.egg-link
no diretório de implantação de volta ao diretório de código-fonte do projeto.Portanto, é como instalar, mas em vez de copiar para o
site-packages
arquivo, ele adiciona um link simbólico (que.egg-link
atua como um link simbólico multiplataforma).Dessa forma, você pode editar o código-fonte e ver as alterações diretamente, sem precisar reinstalá-lo sempre que fizer uma pequena alteração. Isso é útil quando você é o desenvolvedor desse projeto, daí o nome
develop
. Se você está apenas instalando o pacote de outra pessoa, deve usarinstall
fonte
Outra coisa que as pessoas podem achar úteis ao usar o
develop
método é a--user
opção de instalar sem o sudo. Ex:ao invés de
fonte
setup.py develop
em seu sistema, isso só faz sentido em um ambiente virtual.python setup.py develop --user
, se entendi corretamente? Além disso, você poderia me dizer onde o pacote está instalado usandopython setup.py develop --user
? Obrigado!--user
instalará em um diretório na sua conta pessoal e não afetará outros usuários no seu sistema. Odevelop
fará links para o diretório de origem do projeto em vez de realmente copiar tudo.develop --user
deve estar OK, edevelop
em um virtualenv também. Apenasdevelop
o sistema real é estranho, porque você pode ter outros usuários usando algo que aponta para o projeto em sua cópia pessoal do código-fonte do projeto.