Como instalar pacotes usando pip de acordo com os requisitos.txt de um directório local?

Aqui está o problema

Eu tenho um requisito.txt que se parece:

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
...

Tenho um directório de arquivo local contendo todos os pacotes + outros.

Criei um novo virtualenv com

bin/virtualenv testing

Ao activá-lo, tentei instalar os pacotes de acordo com os requisitos.txt a partir do directório de arquivos local.

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

Tenho alguns resultados que parecem 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 uma verificação posterior revelou que nenhum dos pacotes está instalado correctamente. Não posso importar o pacote, e nenhum é encontrado no directório de pacotes do meu virtualenv. Então o que correu mal?

Comentários sobre a pergunta (8)

I'li o acima, percebi que esta é uma pergunta antiga, mas é's totalmente não resolvida e ainda no topo dos meus resultados de pesquisa no Google, por isso aqui's uma resposta que funciona para todos:

pip install -r /path/to/requirements.txt
Comentários (6)
Solução

Isto funciona para mim:

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

--não-índice - Ignorar índice de pacotes (olhando apenas para -e-encontrar-links URLs).

-f, --find-links - Se um URL ou caminho para um ficheiro html, então parse para links para arquivos. Se um caminho local ou file:// URL que's é um directório, então procurar por arquivos na listagem do directório.

Comentários (6)

Para o virtualenv instalar todos os ficheiros no ficheiro requirements.txt.

  1. cd para o directório onde se encontra o arquivo requirements.txt
  2. active o seu virtualenv
  3. correr: pip install -r requirements.txt na sua shell
Comentários (1)

Eu tinha um problema semelhante. Eu tentei isto:

pip install -U -r requirements.txt 

(-U = actualizar se já tivesse instalado)

Mas o problema continuou. Percebi que algumas das bibliotecas genéricas para o desenvolvimento não estavam disponíveis.

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

Eu não sei se isto o ajudaria.

Comentários (0)
pip install -r requirements.txt

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

pip install --help

Nós podemos encontrar a opção '-r'

'-r' > -r, --requirement Instale a partir do arquivo de requisitos dado. Esta opção pode ser

usado 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)

[![insira aqui a descrição da imagem][1]][1]

[1]: http://i.stack.imgur.com/NWTio.png

Também o acima mencionado é o conjunto completo de opções. Por favor, use pip install --help para a lista completa de opções.

Comentários (1)

Muitas vezes, você vai querer uma instalação rápida a partir de arquivos locais, sem sondar o PyPI.

Primeiro, faça o download dos arquivos que preenchem os seus requisitos:

$ pip install --download  -r requirements.txt

Em seguida, instale utilizando -find-links' e-no-index':

$ pip install --no-index --find-links=[file://] -r requirements.txt
Comentários (0)

**Resposta curta***

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

ou de outra forma:

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

**Explicação***

Aqui, -r' é uma forma curta de--requirement' e pede ao pip' para instalar a partir do arquivorequirements' dado.

O pip' só iniciará a instalação após verificar a disponibilidade de todos os itens listados no arquivorequirements' e ele ganhou't iniciar a instalação mesmo que um requirement não esteja disponível.

Uma alternativa para instalar os pacotes disponíveis é instalar os pacotes listados um a um. Utilize o seguinte comando para isso. Um aviso de cor vermelha será mostrado para notificá-lo sobre os pacotes indisponíveis.

cat requirements.txt | xargs -n 1 pip install

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

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

Eu trabalho com muitos sistemas que têm sido aproveitados pelos desenvolvedores " seguindo as instruções que eles encontraram na internet". É extremamente comum que seu pip' e seupipthon' não estejam olhando para os mesmos caminhos/pacotes de sites. Por esta razão, quando encontro estranheza, começo por fazer isto:

$ 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)

Isso é um sistema feliz.

Abaixo está um sistema feliz*. (Ou pelo menos é'é um sistema felizmente 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

É unhappy porque pip está (python3.6 e) utilizando /usr/local/lib/python3.6/site-packages' enquantopython' está (python2.7 e) utilizando `/usr/local/lib/python2.7/site-packages'.

Quando eu quero ter certeza de que I'm instalando requisitos para a python right, eu faço isso:

$ 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

You've heard, "If it ain't broke, don't try to fix it." A versão DevOps disso é, "Se você não'não o quebrou e pode trabalhar em torno dele, don'não tente consertá-lo."

Comentários (0)

Installing requirements.txt file inside virtual env com python 3:

Eu tinha o mesmo problema. Eu estava tentando instalar o arquivo requirements.txt dentro de um ambiente virtual. Eu encontrei a solução.

Inicialmente, criei o meu ambiente virtual desta forma:

virtualenv -p python3 myenv

Ativar o ambiente usando:

source myenv/bin/activate

Agora eu instalei o arquivo requirements.txt usando:

pip3 install -r requirements.txt

A instalação foi bem sucedida e eu pude importar os módulos.

Comentários (3)

experimente isto

python -m pip install -r requirements.txt
Comentários (1)

antes de mais nada, criar um ambiente virtual

em python 3.6

virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>

em python 2.7

virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>

então instale todos os pacotes disponíveis no arquivo requirement.txt.

pip install -r <path/to/the/> requirement.txt
Comentários (1)
pip install --user -r requirements.txt 

OU

pip3 install --user -r requirements.txt 
Comentários (0)