Ben interaktif Python kabuk çalışan ve bir modül 'teftiş' modülünü kullanarak içe edilmek üzere alındığı yolunu görmek için çalışıyorum. İçe aktarmaya çalıştığım modüller, SWIG kullanarak C++ API'leri etrafında Python sarmalayıcılarına sahiptir.Python modülleri (paylaşılan kütüphaneler) .py dosyası olmadan nasıl içe aktarılır?
şu pasajı adımlarımı gösterir:
>>> import os
>>> import inspect
>>>
>>> import db
>>> inspect.getfile(db)
'mypath1/lib/db/db.pyc'
>>>
>>> import dart
>>> inspect.getfile(dart)
'mypath2/lib/dart.so'
>>>
Benim PYTHONPATH
mypath1/lib/db
ve mypath2/lib
hem de içerir.
.so
dosyası) yüklemek için
imp.load_module
çağıran bir
.py
dosyaya erişimi gerekiyor. Bu benim
mypath1/lib/db
altında
db.py
dosyası vardır
db
modülü durumunda gördüğümüz bir durumdur. Ancak,
dart
mypath2/lib
altında
.py
dosyası bulunmamaktadır.
dart
modülü durumunda oluyor olarak
o .py dosyası olmadan bir modül ithal etmek mümkün mü? bu isimde bir dizin içeren ve bir __init__.py
, .py
kaldırılırsa bile kullanılabilen saf yerli Python modülleri ve .pyc
dosyalar için bir .so
dosyayı içeren herhangi bir import
için birkaç farklı dosyalar için