这是我的python包&__ init__.py文件
# mypackage/__init__.py
import ctypes
def init_lib():
print("init_lib")
lib = ctypes.CDLL("libcilin_similarity.dylib")
lib.read_cilin('cilin.txt'.encode('UTF-8'))
lib.similarity.restype = ctypes.c_float
return lib
def compare(lib, first_word, second_word):
print("this should work")
print(second_word, lib.similarity(first_word.encode('UTF-8'), second_word.encode('UTF-8')))
如果我直接运行__init__.py,它的效果非常好。
但如果我试图从外部导入包,它会不断给我OSError错误:
OSError: dlopen(libcilin_similarity.dylib, 6): image not found
有人可以帮我防止这个错误发生吗?非常感谢!
目录结构是
cilin_similarity
|- __init__.py
|- libcilin_similarity.dylib
try.py # <- where I tried to import the package, but failed
当我尝试使用绝对路径时,它给了我Error opening file
错误...
答案 0 :(得分:0)
当我使用绝对路径时,它可以工作。事实证明,Error opening file
错误是由其他原因引起的。
我的绝对路径代码是:
path = os.path.dirname(os.path.realpath(__file__))
path_lib = path + "/libcilin_similarity.dylib"
lib = ctypes.CDLL(path_lib)
我不确定它是否是最佳解决方案。如果你有更好的答案,请发帖!