我正在使用介子构建一个基于 GObject 的库。该项目构建良好。但是,当我运行sudo ninja install
它时,它将 typelib 安装到:
将 src/Edf-0.0.typelib 安装到 /usr/local/lib/x86_64-linux-gnu/girepository-1.0
然后当我运行 python 时:
import gi
gi.require_version('Edf', "0.0")
我得到一个例外:
Traceback (most recent call last):
File "<input>", line 1, in <module>
gi.require_version('Edf', "0.0")
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 130, in require_version
raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Edf not available
或者当我试图变得固执时:
import gi
from gi.repository import Edf
Traceback (most recent call last):
File "<input>", line 1, in <module>
from gi.repository import Edf
File "/usr/lib/python3/dist-packages/gi/importer.py", line 127, in find_module
'introspection typelib not found' % namespace)
ImportError: cannot import name Edf, introspection typelib not found
当我运行时:
export GI_TYPELIB_PATH='/usr/local/lib/x86_64-linux-gnu/girepository-1.0'
或者
export GI_TYPELIB_PATH='./src'
我可以分别从系统或我的构建目录中使用 python 导入引入的库。
python 或 gobject introspection 应该能够在其中找到 typelib/usr/local/lib/x86_64-linux-gnu/girepository-1.0
还是应该更新我的构建?例如。在介子中指定一个前缀。