2016-06-13 7 views
0

Ich bin versucht, ein gemeinsames Objekt in meinen Python-Code zu importieren, etwa so:Problem gemeinsam genutztes Objekt in Python zu importieren

import bz2 

zu denen bekomme ich folgende Fehlermeldung:

ImportError: ./bz2.so: cannot open shared object file: No such file or directory

die imp Verwenden Modul kann ich feststellen, ob Python kann es tatsächlich finden:

>>> import imp 
>>> imp.find_module('bz2') 
(<open file 'bz2.so', mode 'rb' at 0xb6f085f8>, 'bz2.so', ('.so', 'rb', 3)) 

Das Shared Object-Datei ist in meinem PYTHONPATH und m y LD_LIBRARY_PATH.

Keine Erkenntnisse darüber, warum ich dieses gemeinsame Objekt nicht importieren kann? Vielen Dank!

Antwort

0

bz2.so ist das gemeinsame Objekt die die bZIP Funktionalität bereitstellt für die Python-Module (die in C geschrieben wurde). Sie importieren es nicht direkt, wenn Sie bz2 importieren, sondern importieren ein Python-Modul namens bz2, das dann die .so-Datei verwendet.

Dieses in der Regel bedeutet, dass Sie nicht die Entwicklungsversion der bzip Bibliothek bekamen installiert oder Sie nicht über einen C-Compiler Setup für die Pip-Installer dies für Sie zu bauen zu verwenden.

Sie sagen nicht, welche Linux-Sie verwenden, aber das allgemeine Muster ist für bzip2 dev oder Entwick-Pakete in den Paketmanager suchen und diejenigen installieren.

+0

Im mit einem benutzerdefinierten Build von Linux, und es mit bz2 vorinstalliert kommt nicht, und es gibt keinen Paket-Manager es zu helfen. Ich übersetze es aus der Quelle. – RoboCop87

+0

Soweit ich ein Python-Modul importiere, das es verwendet, habe ich versucht, ein Python-Modul zu schreiben, das das dl-Modul importiert und dl.open ('bz2.so') verwendet, aber das hat auch nicht funktioniert. – RoboCop87