installer des paquets python sans internet et utiliser le code source comme .tar.gz et .whl
nous essayons de nous installer quelques paquets python sans internet.
For ex : python-keystoneclient
Pour cela, nous avons les paquets téléchargés à partir de https://pypi.python.org/pypi/python-keystoneclient/1.7.1 et l'a gardé dans le serveur.
Cependant, lors de l'installation tar.gz et .whl paquets , l'installation est à la recherche pour les paquets dépendants être installé en premier. Depuis il n'y a pas de connexion internet dans le serveur, il est arriver a échoué.
Ex : Pour python-keystoneclient nous avons les paquets dépendants
stevedore (>=1.5.0)
six (>=1.9.0)
requests (>=2.5.2)
PrettyTable (<0.8,>=0.7)
oslo.utils (>=2.0.0)
oslo.serialization (>=1.4.0)
oslo.i18n (>=1.5.0)
oslo.config (>=2.3.0)
netaddr (!=0.7.16,>=0.7.12)
debtcollector (>=0.3.0)
iso8601 (>=0.1.9)
Babel (>=1.3)
argparse
pbr (<2.0,>=1.6)
Lorsque j'essaie d'installer les paquets un par un à partir de la liste ci-dessus, une fois encore sa à la recherche pour les sous dépendance .
Est-il de toute façon, nous pourrions liste TOUS les paquets dépendants de l'installation d'un module python comme python-keystoneclient.
source d'informationauteur srinath
Vous devez vous connecter pour publier un commentaire.
C'est comment je gère ce cas:
Sur la machine où j'ai accès à Internet:
Puis déplacez le fichier tar de la machine de destination qui n'ont pas accès à Internet et d'effectuer les opérations suivantes:
Nous avons une situation similaire au travail, où les machines de production ont pas accès à l'Internet; par conséquent, tout doit être géré hors ligne et hors hôte.
Voici ce que j'ai essayé avec différentes quantités de succès:
panier
qui est un petit utilitaire que vous exécutez sur votre internet connecté à l'hôte. Au lieu d'essayer d'installer un paquet, il va au lieu de le télécharger et de tout ce dont il a besoin pour être installé dans un répertoire. Vous déplacez ensuite ce répertoire sur votre machine cible. Avantages: très facile et simple à utiliser, pas de serveur maux de tête; pas de ports à configurer. Inconvénients: il n'y a pas de véritables vedettes de la carte, mais le plus important, c'est qu'il ne respecte pas n'importe quelle version épinglage que vous pourriez avoir; il sera toujours télécharger la dernière version d'un paquet.Exécuter un local pypi serveur. Utilisé
pypiserver
etdevpi
.pypiserver
est super simple à installer et à configurer;devpi
prend un peu plus de finagling. Ils font tous les deux la même chose - agir comme un proxy/cache pour le real pypi et comme un local pypi serveur pour toute la maison-grandi paquets.localshop
est un nouveau qui n'était pas là quand j'étais à la recherche, il a aussi la même idée. Alors, comment il fonctionne, c'est votre internet restreint de machine de se connecter à ces serveurs, ils sont ensuite connectés à l'Internet, de sorte qu'ils peuvent mettre en cache proxy et le référentiel proprement dit.Le problème avec la deuxième approche est que, bien que vous obtenir le maximum de compatibilité et de l'accès à l'ensemble du référentiel de packages Python, vous avez encore besoin pour s'assurer que le/toutes les dépendances sont installés sur vos ordinateurs cibles (par exemple, les en-têtes pour les pilotes de base de données et de construire ensemble des outils). De plus, ces solutions ne permettent pas de répondre pour les non-pypi référentiels (par exemple, les paquets qui sont hébergés sur github).
Nous en sommes très loin avec la deuxième option, alors je vous le conseille.
Finalement, fatigué d'avoir à traiter avec les problèmes de compatibilité et les bibliothèques, nous avons migré l'ensemble du cirque de serveurs de support commercial des conteneurs docker.
Cela signifie que nous expédier le tout pré-configuré, rien n'a réellement besoin d'être installé sur les machines de production et il a été la plupart des maux de tête sans solution pour nous.
Nous avons remplacé le pypi dépôts avec un menu fixe de l'image du serveur.
pipdeptree
est un utilitaire de ligne de commande pour afficher les paquets python installé dans un virtualenv sous la forme d'un arbre de dépendances.Juste l'utiliser:
https://github.com/naiquevin/pipdeptree