python how to - Como instalar pacotes usando pip de acordo com o arquivo requirements.txt de um diretório local?




5 Answers

Isso funciona para mim:

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index - Ignora o índice de pacotes (somente olhando para --find-links URLs).

-f, --find-links <URL> - Se um URL ou caminho para um arquivo html, analise links para arquivos. Se um caminho ou file:// local file:// URL for um diretório, procure por arquivos na listagem de diretórios.

install dependencies

Aqui está o problema

Eu tenho um requirements.txt que se parece com:

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

Eu tenho um diretório de arquivo local contendo todos os pacotes e outros.

Eu criei um novo virtualenv com

bin/virtualenv testing

Ao ativá-lo, tentei instalar os pacotes de acordo com requirements.txt a partir do diretório do arquivo local.

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

Eu tenho alguma saída que parece indicar que a instalação está bem

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

Mas depois verifique se nenhum pacote está instalado corretamente. Não consigo importar o pacote e nenhum é encontrado no diretório site-packages do meu virtualenv. Então, o que deu errado?




Para virtualenv para instalar todos os arquivos no arquivo requirements.txt.

  1. cd para o diretório onde o requirements.txt está localizado
  2. ative seu virtualenv
  3. execute: pip install -r requirements.txt no seu shell



pip install -r requirements.txt

Para mais detalhes, por favor, verifique a opção de ajuda.

pip install --help

Podemos encontrar a opção '-r'

-r, --requirement Instale a partir do arquivo de requisitos fornecido. Esta opção pode ser usada várias vezes.

Mais informações sobre algumas opções de instalação de pip comumente usadas: (Esta é a opção de ajuda no comando de instalação do pip)

Além disso, o acima é o conjunto completo de opções. Por favor, use pip install --help para obter uma lista completa de opções.




Eu trabalho com muitos sistemas que foram enganados pelos desenvolvedores "seguindo as instruções que encontraram na internet". É extremamente comum que o seu pip e seu python não estejam olhando para os mesmos caminhos / site-packages. Por esse motivo, quando me deparo com estranheza, começo fazendo isso:

$ python -c 'import sys; print(sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']

$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

Esse é um sistema feliz .

Abaixo está um sistema infeliz . (Ou pelo menos é um sistema alegremente ignorante que faz com que os outros sejam infelizes.)

$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ python -c 'import sys; print(sys.path)'
['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']

$ which pip pip2 pip3
/usr/local/bin/pip
/usr/local/bin/pip3

É infeliz porque pip é (python3.6 e) usando /usr/local/lib/python3.6/site-packages enquanto python é (python2.7 e) usando /usr/local/lib/python2.7/site-packages

Quando eu quero ter certeza de que estou instalando os requisitos para o python certo , eu faço o seguinte:

$ which -a python python2 python3
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python2
/usr/local/bin/python3

$ /usr/bin/python -m pip install -r requirements.txt

Você já ouviu: "Se não está quebrado, não tente consertar". A versão DevOps disso é: "Se você não quebrou e pode contornar isso, não tente consertá-lo."




pip install -r /path/to/requirements.txt

Aqui, -r é forma abreviada de --requirement e pede ao pip para instalar a partir do arquivo de requirements fornecido.

pip iniciará a instalação somente após verificar a disponibilidade de todos os itens listados no arquivo de requirements e não iniciará a instalação mesmo que um requirement não esteja disponível.

Uma solução para instalar os pacotes disponíveis é instalar os pacotes listados um por um. Use o seguinte comando para isso. Um aviso de cor vermelha será exibido para notificá-lo sobre os pacotes indisponíveis.

cat requirements.txt | xargs -n 1 pip install

Para ignorar comentários (linhas começando com # ) e linhas em branco, use:

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install



Related