Qual é a melhor maneira de baixar um pacote python e suas dependências do pypi para instalação offline em outra máquina? Existe alguma maneira fácil de fazer isso com pip ou easy_install? Estou tentando instalar a biblioteca de solicitações em uma caixa do FreeBSD que não está conectada à Internet.
python
pip
freebsd
easy-install
python-requests
Chris Drantz
fonte
fonte
Respostas:
Se o pacote estiver no PYPI, faça o download dele e de suas dependências para algum diretório local. Por exemplo
Alguns pacotes podem ter que ser arquivados em tarballs com aparência semelhante à mão. Faço muito quando quero uma versão mais recente (menos estável) de algo. Alguns pacotes não estão no PYPI, então o mesmo se aplica a eles.
Suponha que você tenha um aplicativo Python formado corretamente
~/src/myapp
.~/src/myapp/setup.py
terá umainstall_requires
lista que menciona uma ou mais coisas que você possui em seu/pypi
diretório. Igual a:Se você deseja executar seu aplicativo com todas as dependências necessárias enquanto ainda o faz hackers, faça algo assim:
Dessa forma, seu aplicativo será executado diretamente do seu diretório de origem. Você pode invadir as coisas e executar novamente o aplicativo sem reconstruir nada.
Se você deseja instalar seu aplicativo e suas dependências no ambiente python atual, faça algo assim:
Nos dois casos, a compilação falhará se uma ou mais dependências não estiverem presentes no
/pypi
diretório. Não tentará instalar promiscuamente coisas ausentes da Internet.Eu recomendo invocar
setup.py develop ...
eeasy_install ...
dentro de um ambiente virtual ativo para evitar contaminar seu ambiente global em Python. É (virtualenv que é) praticamente o caminho a percorrer. Nunca instale nada no ambiente global do Python.Se a máquina em que você criou seu aplicativo tiver a mesma arquitetura da máquina na qual você deseja implantá-lo, você pode simplesmente marcar o diretório inteiro do ambiente virtual no qual você
easy_install
colocou tudo. Porém, antes do tarballing, você deve tornar o diretório do ambiente virtual realocável (consulte a opção --relocatable ). NOTA: a máquina de destino precisa ter a mesma versão do Python instalada e também quaisquer dependências baseadas em C que seu aplicativo possa ter também devem ser pré-instaladas (por exemplo, se você depende de PIL , libpng, libjpeg, etc.) .fonte
--allow-hosts=None
você poderia usar o switch--no-index
O
download
comando pip permite baixar pacotes sem instalá-los:pip download -r requirements.txt
(Nas versões anteriores do pip, isso estava escrito
pip install --download -r requirements.txt
.)Em seguida, você pode usar
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
para instalar os sdists baixados, sem acessar a rede.fonte
--find-links file:/path/to/some/dir/
e você deve baixar e instalar com a mesma versão do pip - caso contrário, pode falharSe você deseja instalar as bibliotecas python e suas dependências offline, conclua estas etapas em uma máquina com o mesmo sistema operacional, rede conectada e python instalado:
1) Crie um
requirements.txt
arquivo com conteúdo semelhante (Nota - estas são as bibliotecas que você deseja baixar):Uma opção para criar o arquivo de requisitos é usar
pip freeze > requirements.txt
. Isso listará todas as bibliotecas em seu ambiente. Depois, você pode acessarrequirements.txt
e remover os desnecessários.2) Execute o comando
mkdir wheelhouse && pip download -r requirements.txt -d wheelhouse
para baixar as bibliotecas e suas dependências no diretóriowheelhouse
3) Copie requirements.txt para o
wheelhouse
diretório4) Arquive a casa do leme
wheelhouse.tar.gz
comtar -zcf wheelhouse.tar.gz wheelhouse
Em seguida, faça o upload
wheelhouse.tar.gz
para sua máquina de destino:1) Execute
tar -zxf wheelhouse.tar.gz
para extrair os arquivos2) Execute
pip install -r wheelhouse/requirements.txt --no-index --find-links wheelhouse
para instalar as bibliotecas e suas dependênciasfonte
pip install
no final, diz: ERRO: não foi possível encontrar uma versão que atenda aos requisitos .. »python offline. para fazer isso, uso o virtualenv (ambiente Python isolado)
1) instale o virtualenv online com o pip:
ou offline com whl: acesse este link , faça o download da última versão (.whl ou tar.gz) e instale-a com este comando:
usando
--user
você não precisa usarsudo pip…
.2) use virtualenv
na máquina online, selecione um diretório com terminal
cd
e execute este código:depois de instalar todos os pacotes, você deve gerar um
requirements.txt
enquanto o seu virtualenv estiver ativo, escrevaabra um novo terminal e crie outro ambiente
myenv2
.agora você pode ir para sua pasta offline, onde estão suas pasta
requirements.txt
etranferred_packages
. faça o download dos pacotes com o seguinte código e coloque todos eles natranferred_packages
pastaleve sua pasta offline para o computador offline e depois
o que está na pasta offline [requirements.txt, tranferred_packages {Flask-0.10.1.tar.gz, ...}]
lista de verificação do seu pacote
nota: como estamos em 2017, é melhor usar o python 3. você pode criar o python 3 virtualenv com este comando.
fonte
Faça o download do tarball , transfira-o para a sua máquina FreeBSD e extraia-o, depois execute
python setup.py install
e pronto!EDIT: Apenas para adicionar isso, você também pode instalar os tarballs com o pip agora.
fonte
Deixe-me seguir o processo passo a passo:
abra um prompt de comando ou shell e execute o seguinte comando:
Suponha que o pacote que você deseja seja
tensorflow
$ pip download tensorflow
Agora, no computador de destino, copie a
packages
pasta e aplique o seguinte comandoObserve que
tensorflow-xyz.whl
deve ser substituído pelo nome original da embalagem necessária.fonte
Usando
wheel
pacotes compilados.agrupar:
copie o tarball e instale:
Nota
wheel
os pacotes binários não estão entre máquinas.Mais ref. aqui: https://pip.pypa.io/en/stable/user_guide/#installation-bundles
fonte
Eu tive um problema parecido. E eu tive que fazê-lo instalar da mesma maneira, fazemos com o pypi.
Eu fiz as seguintes coisas:
Crie um diretório para armazenar todos os pacotes na máquina que têm acesso à Internet.
Faça o download de todos os pacotes para o caminho
Tarar o diretório de pacotes e copiá-lo para a máquina que não tem acesso à Internet. Então faça,
Copie o packages.tar.gz na máquina de destino que não possui acesso à Internet.
Na máquina que não possui acesso à Internet, faça o seguinte (Supondo que você tenha copiado os pacotes tarred para / path / to / package / na máquina atual)
cole o conteúdo a seguir e salve-o.
Finalmente, sugiro que você use alguma forma de
virtualenv
instalar os pacotes.Você deve poder baixar todos os módulos que estão no diretório / path / to / package / .
Nota: Eu fiz isso apenas porque não consegui adicionar opções ou alterar a maneira como instalamos os módulos. Caso contrário, eu teria feito
fonte
Para o Pip 8.1.2, você pode usar
pip download -r requ.txt
para baixar pacotes na sua máquina local.fonte