Python包中共享C库的路径无关管理
||
假设我有一个名为Foo的软件包,其组织方式如下:
Foo\\
__init__.py
foo.py
bar.py
lib\\
libwhatever.so
我的模块foo.py使用python ctypes包装了我的libwhatever.lib中包含的C方法,这涉及检查lib是否在应有的位置。 2个问题:
1)无论整个Foo软件包都放置在哪里,如何在我的软件包中检查所需的库是否位于其位置(在Foo \\ lib中)?
现在,通往我的库的路径是硬编码的,但是,由于我以后可能会分发它们,因此问题将会出现。
2)然后我有模块bar.py,它在libwhatever内部打包了一个较慢的Python C例程版本。我想用它们代替libwhatever的导入是否失败。有没有一种方法可以在库的导入成功或失败之间抽象地在C和Python版本的例程之间切换?
预先感谢您的建议。
没有找到相关结果
已邀请:
1 个回复
催备南菠亨
。一旦执行了这两个操作,就可以使用
。否则,您必须具有.so文件的完整路径才能使用
。 我想我会做的就是在运行时构建该路径-这样的话:
不过,也许有更好的方法...