Qual é a maneira mais simples de fazer uma instalação local do usuário de um pacote python?

32

Eu não quero lidar com o virtualenv para uma instalação local do Python, só quero instalar alguns pacotes localmente sem lidar com a PYTHONPATHvariável de ambiente, como faço isso?

Aron Ahmadia
fonte
Você diz "lidar com" como se o virtualenv fosse um aborrecimento. Eu achei exatamente o oposto verdadeiro. (Talvez você queira --system-site-packages?)
Andreas Klöckner
foi hipoteticamente posicionado :) virtualenv é incrível, mas não se encaixa em todos os casos de uso.
Aron Ahmadia

Respostas:

48

O Python (a partir de 2.6 e 3.0 ) agora procura no diretório ~ / .local por instalações locais, que não exigem privilégios administrativos para instalar, portanto, você só precisa apontar o instalador para esse diretório.

Se você já baixou o pacote fooe gostaria de instalá-lo manualmente, digite:

cd path/to/foo
python setup.py install --user

Se você estiver usando o easy_install e desejar que o pacote seja baixado e instalado:

easy_install --prefix=$HOME/.local/ foo

Atualização por RafiK

pip install --user foo

A resposta a seguir é fornecida para fins históricos: É um pouco mais trabalhoso se você estiver usando o pip para baixar e instalar:

pip install --install-option="--prefix=$HOME/.local" foo
Aron Ahmadia
fonte
3
update: pip agora suporta uma bandeira --user: pip install --user SomePackage (link para o manual) Usando isso, tudo deve funcionar fora da caixa, mesmo em sistemas operacionais diferentes
Rafik
5

Mesmo que eu goste do Python como uma linguagem, distribuir pacotes do Python é uma bagunça. Eu sempre encontro pessoas não familiarizadas com o Python lutando com ele.

Ao lado da instalação local do usuário, conforme descrito pela Aron (usando --user ou --prefix), outra opção é o EasyBuild ( http://hpcugent.github.com/easybuild/ ). Não apenas para pacotes Python, mas para qualquer pacote de software (científico). Uma vez que o EasyBuild tem suporte, a criação e a instalação de um pacote de software é basicamente um único comando.

Para obter uma lista dos pacotes de software atualmente suportados, consulte https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Isenção de responsabilidade: Sou desenvolvedor do EasyBuild.

Kenneth Hoste
fonte
2

@Aron: Certifique-se de adicionar o caminho dos pacotes de sites locais à variável de ambiente $ PYTHONPATH

corion
fonte
É automaticamente incluído no caminho de site a partir de Python 2.6 e Python 3.0 :)
Aron Ahmadia
@AronAhmadia não se você usar a --prefixopção.
precisa saber é o seguinte
@JensTimmerman - o caminho do site é o local onde o Python fica quando inicia a importação dos módulos, sempre que você estiver executando o Python. A opção prefix especifica onde instalar um determinado pacote quando você está instalando um pacote Python. Duas noções completamente separadas.
Aron Ahmadia
@AronAhmadia sim, meu argumento é que, quando você usa easy_install --prefix = / tmp, você precisa adicionar "/tmp/lib/pythonx.x/site-packages" à sua variável PYTHONPATH ou ela não será capturada pelo python.
precisa saber é o seguinte
@AronAhmadia pastebin.com/6FCTetCc
Jens Timmerman