7 Stimmen

Wie bestimmt man den Pfad und den Namen der Python Shared Library?

Wie ermittle ich den Namen und den Pfad einer Python-Bibliothek, die als Shared Library kompiliert wurde?

Die Ausgabe, nach der ich suche, ist etwa "/usr/local/lib/libpython2.7.so" oder "/System/Library/Frameworks/Python.framework/Versions/2.6/Python" (für eine Framework-Erstellung unter OS X).

3voto

timotheecour Punkte 2444

Siehe https://pypi.org/project/find-libpython/

$ pip3 install find_libpython

entonces

$ python3 -c 'import find_libpython; print(find_libpython.find_libpython())'
/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/Python

oder einfach:

python3 -m find_libpython

3voto

Wolfgang Kuehn Punkte 10819

Mit reinem Python getestet auf Amazonas-Linux nach einer sudo yum install python3

import sysconfig
sysconfig.get_config_vars('LIBDIR', 'INSTSONAME')  
# -> ['/usr/lib64', 'libpython3.7m.so.1.0']

Bearbeiten: Beachten Sie, dass einige Distributionen (z.B. Linux und Python >= 3.8) keine Shared Library mehr enthalten, sondern statisch auf libpython3.8.a linken.

2voto

snapshoe Punkte 12254

Ich bin mir nicht sicher, wie oder ob dies in Python selbst möglich ist, aber Sie können Standardwerkzeuge verwenden, um Abhängigkeiten von gemeinsam genutzten Bibliotheken für die ausführbare Python-Datei zu finden.

Linux: ldd <path>/python o ldd $(which python)
Mac: otool -L <path>/python
Windows: ausführen dependencywalker auf python.exe

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X