Étant donné un python compilé sous forme de bibliothèque partagée, comment puis-je déterminer le nom et le chemin de cette bibliothèque? P>
La sortie que je recherche est comme "/usr/local/lib/libpython2.7.so" ou "/system/library/frameworks/python.framework/versions/2.6/python" (pour une construction-cadre sur OS X). P>
3 Réponses :
Je ne sais pas comment ou si cela peut être fait dans Python lui-même, mais vous pouvez utiliser des outils standard pour trouver des dépendances de bibliothèque partagées pour l'exécutable Python. P>
Linux: LDD ldd $ (quel python) code>
Mac: otool -l
Windows: exécutez dépendencywalker sur python.exe p>
Vous pouvez maintenant simplement exécuter python -m wind_libpython code>.
avec python pur testé sur Amazon Linux em> après un édition:
Notez que certaines distributions (I.e Linux et Python> = 3.8) ne contiendront plus une bibliothèque partagée, mais relieront de manière statique à LibPyThon3.8.a. P> P> sudo yum installer python3 code>
Bien qu'il soit de plus en plus important, il convient de noter que le module sysconfig code> n'est disponible que dans Python3.2 +.
C'est ce que je cherchais. Dans mon cas, je devais utiliser 'libple' code> ou 'srcdir' code> pour obtenir le répertoire contenant la bibliothèque partagée.
J'ai trouvé la variable de configuration "LDLibrary"; Définissez sur "libpytHon2.7.dylib" pour un python sur mesure sur OS X et "Python.framework / Versions / 2.6 / Python" pour la version système OS X (construite en tant que cadre). Malheureusement, aucun de ceux-ci n'include pas d'informations sur le chemin complet, et je ne trouve pas de VaR approprié pour concat avec.