Na verdade, não existe uma única "resposta" para essa pergunta, mas definitivamente existem alguns conceitos úteis que podem ajudá-lo a tomar uma decisão.
A primeira pergunta que precisa ser respondida em seu caso de uso é "Eu quero usar o sistema Python?" Se você quiser usar o Python distribuído com seu sistema operacional, usar o método apt-get install pode ser adequado. Porém, dependendo do método de distribuição do sistema operacional, você ainda precisa fazer mais algumas perguntas, como "Desejo instalar várias versões deste pacote?" Se a resposta for sim, então provavelmente não é uma boa ideia usar algo como o apt. Dpkg basicamente irá descompactar um arquivo na raiz do sistema de arquivos, portanto, é responsabilidade do mantenedor do pacote certificar-se de que o pacote seja instalado com segurança sob muito poucas suposições. No caso da maioria dos pacotes debian, eu presumiria (alguém pode ficar à vontade para me corrigir aqui) que eles simplesmente descompactam e fornecem um pacote de nível superior.
Por exemplo, digamos que o pacote seja "virtualenv", você acabaria com /usr/lib/python2.x/site-packages/virtualenv
. Se você instalá- easy_install
lo, obterá algo parecido /usr/lib/python2.x/site-packages/virtualenv.egg-link
que pode apontar para /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
um diretório ou ovo compactado. Pip faz algo semelhante, embora não use ovos e, em vez disso, coloque o pacote de nível superior diretamente no lib
diretório.
Posso estar errado nos caminhos, mas a questão é que cada método leva em conta necessidades diferentes. É por isso que ferramentas como o virtualenv são úteis, pois permitem que você faça uma sandbox de suas bibliotecas Python de forma que possa ter qualquer combinação de bibliotecas e versões que você precisa.
Setuptools também permite instalar pacotes como multiversão, o que significa que não há um único mo dule_name.egg-link
criado. Para importar esses pacotes, você precisa usar pkg_resources e a __import__
função.
Voltando à sua pergunta original, se você está feliz com o sistema python e planeja usar o virtualenv e o pip para construir ambientes para diferentes aplicativos, então instalar o virtualenv e / ou pip no nível do sistema usando apt-get parece totalmente apropriado. Uma palavra de cautela, porém, é que se você planeja atualizar suas distribuições Python, isso pode ter um efeito cascata em seu virtualenvs se você vincular de volta aos pacotes de site do sistema.
Devo também mencionar que nenhuma dessas opções é inerentemente melhor do que as outras. Eles simplesmente adotam abordagens diferentes. Usar a versão do sistema é uma excelente maneira de instalar aplicativos Python, mas pode ser uma maneira muito difícil de desenvolver com Python. Ferramentas de instalação e configuração fáceis são muito convenientes em um mundo sem virtualenv, mas se você precisar usar versões diferentes da mesma biblioteca, ela também se tornará um tanto complicada. Pip e virtualenv realmente agem mais como uma máquina virtual. Em vez de ter o cuidado de instalar as coisas lado a lado, você apenas cria um ambiente totalmente novo. A desvantagem aqui é que 30+ virtualenvs depois você pode ter usado um pouco de espaço em disco e bagunçado seu sistema de arquivos.
Como você pode ver, com as muitas opções, é difícil dizer qual método usar, mas com um pouco de investigação em seus casos de uso, você poderá encontrar um método que funcione.
ez_setup.py
uma "versão leve" de obter pip. Eu faria o mesmo, mas temo que isso vá quebrar em um futuro próximo e eu fique preso aqui novamente (como sempre faço)