Comment trouver la bibliothèque Python chemin d'installation?
Pour l'installation des tiers les paquets Python, j'ai utilisé une setup.py script qui utilise setuptools.setup() pour installer un tas de paquets. Après l'installation je peux trouver ces paquets sur une machine à sous /usr/local/lib/python2.7/dist-packages et sur une autre machine sous /usr/lib/python2.7/site-packages.
Maintenant, je veux écrire un script Python qui permet de déterminer les cas où la tierce partie de paquets qui ont été installés. Comment puis-je le faire?
1) sys.préfixe=sys.exec_prefix est sur les deux machines "/usr".
2) L'exécutable python est sur les deux machines /usr/bin/python.
3) distutils.sysconfig.get_python_lib() est /usr/lib/python2.7/dist-packages ("local" est manquant) sur une seule machine et /usr/lib/python2.7/site-packages sur l'autre machine.
OriginalL'auteur | 2013-07-03
Vous devez vous connecter pour publier un commentaire.
Si les paquets ont déjà été installés, vous pouvez simplement importer, et regardez-les dans les
__file__
propriété:Cela a été utile pour arriver à ma réponse.
OriginalL'auteur alejandro
Près de trouvé une solution à ce problème. J'ai arbitré à cette question et cette question ainsi, grâce aux réponses données.
Tout d'abord, vous aurez besoin d'obtenir une liste de tous les modules installés dans une liste. Utilisation cette question de capturer la sortie de la la solution à cette question.
Vous avez maintenant une liste de tous les modules python. Vous aurez besoin de connaître le format de la liste, puis de formater correctement pour obtenir des éléments individuels comme les noms de modules.
Ensuite, vous pouvez importer les modules à partir de leurs noms comme des chaînes de caractères comme expliqué ici. Puis, comme alejandro déjà dit
mymodule.__file__
contient les chemins d'accès.C'est une solution qui devrait fonctionner. Pas très élégant, mais je ne suis qu'un débutant en Python, qui est mieux à la recherche google que Python
J'ai trouvé un moyen beaucoup plus facile de trouver où les modules sont. Ce pourrait être le "elegent" solution que l'opération était à la recherche pour.
De l'Python docs sur module sys
sys.path
contientMise à jour de la réponse. Un coup d'oeil.
et pour
python3
même que ci-dessus, justeprint(sys.path)
OriginalL'auteur Aseem Bansal
Je ne sais pas d'une bonne façon de le faire en Python (autres que l'analyse de l'répertoires à partir d'une racine de rechercher un fichier à l'aide de l'os.à pied). Si vous n'obtenez pas les meilleures réponses pour savoir comment faire cela en Python, vous pouvez exécuter une commande sur votre système d'exploitation à partir de python pour exécuter un standard de Linux/Unix commande rechercher dans la bibliothèque que vous êtes la recherche pour. Vous pouvez utiliser le sous-processus module pour ce faire.
Le point est que même si vous pouvez utiliser la même méthode pour établir le répertoire par défaut cela ne permettrait pas pour les scénarios où l'utilisateur n'a pas utilisé par défaut. Je ne sais pas de toute autre manière, mais être intéressé de voir comment d'autres suggestions.
OriginalL'auteur ChrisProsser
J'ai trouvé mon chemin d'installation par
sys.path
:Remarque: Cela fonctionne après que le paquet a été enregistrée par l'
setuptools
, et vous avez sans doute aussi avoir à gérer si le paquet a été installé dans plusieurs répertoires à l'intérieur de lasys.path
.OriginalL'auteur Ezbob