Les Paquets Python Installation En Mode Hors Connexion
Quelle est la meilleure façon de télécharger un paquet python et de ses dépendances depuis pypi pour installation en mode hors connexion sur un autre ordinateur? Est-il un moyen facile de le faire avec pip ou easy_install? Je suis en train d'installer les demandes de la bibliothèque sur une machine qui n'est pas connecté à internet.
Vous devez vous connecter pour publier un commentaire.
Si le paquet est sur PYPI, de le télécharger et de ses dépendances à certains de répertoire local.
E. g.
Certains paquets peuvent être archivés dans semblable à la recherche des archives à la main. Je le fais beaucoup quand je veux un plus récent (moins stable) version de quelque chose. Certains paquets ne sont pas sur PYPI, donc même s'applique à eux.
Supposons que vous ayez correctement formé application Python dans
~/src/myapp
.~/src/myapp/setup.py
aurainstall_requires
liste qui mentionne l'un ou plusieurs des choses que vous avez dans votre/pypi
répertoire. Comme:Si vous voulez être en mesure d'exécuter votre application avec toutes les dépendances nécessaires tout en encore sur le piratage, vous serez en mesure de faire quelque chose comme ceci:
De cette façon, votre application sera exécutée directement à partir de votre répertoire source. Vous pouvez pirater sur les choses, et puis exécutez à nouveau l'application sans avoir à recompiler quoi que ce soit.
Si vous souhaitez installer votre application et ses dépendances dans l'actuel environnement python, vous allez faire quelque chose comme ceci:
Dans les deux cas, la compilation échouera si une ou plusieurs dépendances ne sont pas présents dans
/pypi
répertoire. Il ne tente pas de les pêle-mêle absents des choses à partir d'Internet.Je recommande fortement d'invoquer
setup.py develop ...
eteasy_install ...
au sein d'une environnement virtuel pour éviter de contaminer votre environnement Python. Il est (virtualenv qui est) assez bien le chemin à parcourir. Ne jamais installer quoi que ce soit dans le monde Python environnement.Si la machine que vous avez créé votre application a la même architecture que la machine sur laquelle vous souhaitez déployer, vous pouvez simplement archive l'ensemble de l'environnement virtuel répertoire dans lequel vous
easy_install
-ed tout. Juste avant tarballing cependant, vous devez faire de l'environnement virtuel répertoire amovible (voir --amovibles option). REMARQUE: la machine de destination doit avoir la même version de Python installée, et aussi une C-base de dépendances de votre application doivent être préinstallés il y a trop (par exemple dire si vous comptez sur PIL, puis libpng, libjpeg, etc doit être préinstallé).--allow-hosts=None
vous pouvez utiliser le commutateur de--no-index
Le pip
download
commande permet de télécharger des paquets sans les installer:pip download -r requirements.txt
(Dans les versions précédentes de pip, c'était orthographié
pip install --download -r requirements.txt
.)Ensuite, vous pouvez utiliser
pip install --no-index --find-links /path/to/download/dir/-r requirements.txt
pour installer ces téléchargé sdists, sans accès au réseau.pip install --download -r requirements.txt
ne télécharge que la liste des dépendances en requirements.txt si ces dépendances ont d'autres exigences.e.g dans setup.py pip, ne pas chercher ceux, sb ajoute de la fonctionnalité. e.g si un projet nécessite sphinxpip -d
ne chercher sphinx, mais pas jinja, pygments et docutils (qui sont requises par le sphinx). Ces informations seront uniquement être récupérés une fois que vous exécutez setup.py mais puisque c'est censé être pour une utilisation hors connexion vous n'avez pas une connexion de travail lors de l'exécution de setup.py et l'installation échouera citant des dépendances non satisfaites que par la question.requirements.txt
et télécharger tout ce qui est listé. Certains projets vont de la liste de leurs dépendances dansrequirements.txt
et la liste va varier de celui qui est dans setup.py. django-oscar en est un exemple.--find-links file:/path/to/some/dir/
et vous devez le télécharger et de l'installer avec la même version de pip - sinon, il risque d'échouerpip download -r requirements.txt
c'est vrai.pip download <package>
télécharge les dépendances ainsi.hors ligne python. pour ce faire, j'utilise virtualenv (isolé environnement Python)
1) installer virtualenv
en ligne avec le pip:
ou hors ligne avec whl: aller à ce lien , télécharger la dernière version.whl ou tar.gz) et l'installer avec la commande:
en utilisant
--user
vous n'avez pas besoin d'utilisersudo pip…
.2) utiliser virtualenv
en ligne de la machine, sélectionnez un dossier avec le terminal
cd
et d'exécuter ce code:après l'installation de tous les paquets, vous devez générer un
requirements.txt
donc, même si votre virtualenv est active, écrireouvrez un nouveau terminal et de créer un autre env comme
myenv2
.maintenant vous pouvez aller à votre dossier en mode hors connexion lorsque votre
requirements.txt
ettranferred_packages
dossier sont là. télécharger les paquets avec le code suivant et de les mettre tous àtranferred_packages
dossier.prendre votre dossier en mode hors connexion à l'ordinateur en mode hors connexion et puis
ce qui est dans le dossier en mode hors connexion [requirements.txt , tranferred_packages {Flask-0.10.1.tar.gz, ...}]
liste de vérification de votre colis
remarque: comme nous sommes en 2017, il est préférable d'utiliser python 3. vous pouvez créer python 3 virtualenv avec cette commande.
Si vous souhaitez installer les libs python et de leurs dépendances en mode hors connexion, la finition, les étapes suivantes dans une machine avec le même os, connectés en réseau, installé python:
1) Créer un
requirements.txt
fichier avec le contenu comme:2) Exécuter la commande
mkdir wheelhouse && pip download -r requirements.txt -d wheelhouse
pour télécharger libs et leurs dépendances à active directorywheelhouse
3) Copie requirements.txt en
wheelhouse
répertoire4) Archives de la timonerie en
wheelhouse.tar.gz
avectar -zcf wheelhouse.tar.gz wheelhouse
Ensuite télécharger
wheelhouse.tar.gz
à votre machine cible:1) Exécuter
tar -zxf wheelhouse.tar.gz
pour extraire les fichiers2) Exécuter
pip install -r wheelhouse/requirements.txt --no-index --find-links wheelhouse
pour installer les libs et de leurs dépendancesTélécharger le archive, le transférer sur votre machine FreeBSD et l'extraire, par la suite exécuter
python setup.py install
et vous avez terminé!EDIT: Juste pour ajouter à cela, vous pouvez également installer les archives avec pip.
À l'aide de
wheel
des paquets construits.en écrivant:
copie de l'archive et installer:
Note
wheel
paquets binaires ne sont pas sur toutes les machines.Plus réf. ici: https://pip.pypa.io/en/stable/user_guide/#installation-bundles
Pour le Pep 8.1.2 vous pouvez utiliser
pip download -r requ.txt
pour télécharger les paquets sur votre machine locale.J'ai eu un problème similaire. Et j'ai dû le faire installer de la même façon, nous ne de pypi.
J'ai fait les choses suivantes:
Faire un répertoire pour stocker tous les paquets dans la machine qui ont accès à internet.
Télécharger tous les paquets sur le chemin
Tar le répertoire packages et de le copier sur la Machine qui n'ont pas accès à internet. Alors,
Copiez le packages.tar.gz dans la machine de destination qui n'ont pas accès à internet.
Dans la machine qui n'ont pas accès à internet, procédez de la manière suivante (en Supposant que vous avez copié le goudronnée paquets de /chemin/vers/dossier/ dans le courant de la machine)
et collez le contenu suivant à l'intérieur et à l'enregistrer.
Enfin, je vous suggère d'utiliser, une certaine forme de
virtualenv
pour l'installation de ces paquets.Vous devriez être en mesure de télécharger tous les modules dans le répertoire /chemin/vers/dossier/.
Note: j'ai fait cette, parce que je ne pouvais pas ajouter des options ou modifier la façon dont nous installer les modules. Sinon, je l'ai fait