我正在尝试以编程方式确定特定程序包的包含/安装的DLL文件的路径。我读了无数的SO页,但是找不到任何解决方案。也许我错过了一些东西,这不可能吗?
该软件包是capstone,是通过Cygwin在Windows上通过源代码手动安装的,带有python3绑定(bind)。一切正常。
# python3 -c "import os,inspect,capstone; print(os.path.dirname(inspect.getfile(capstone)))"
/usr/lib/python3.6/site-packages/capstone-4.0.0rc1-py3.6.egg/capstone
# python3 -c "import capstone; print(capstone._lib)"
capstone.dll
*.egg
文件的路径,但是该路径实际上并不存在,除非您解压缩文件。
./*.egg/capstone/lib/capstone.dll
中capstone.dll
的实际系统位置在:/usr/lib/python3.6/site-packages/capstone/lib
如何在Python3中获得真实路径(3)?
编辑:
也许this可能有用吗?但是我想出了这个丑陋的东西,很容易打破,所以希望有一种更Python化的方式。
# python3 -c "import capstone; print('DLL path: %s' % capstone._path_list[4] + '/' + capstone.__name__ + '/lib/' + capstone._lib)"
DLL path: /usr/lib/python3.6/site-packages/capstone/lib/capstone.dll
最佳答案
我通过复制“安装”了顶点:
二进制文件.zip文件中的
在开始准备一个详尽(通用)的示例时,我浏览了一下源代码(在开始时,它没有找到.dll,因此需要设置$ {LIBCAPSTONE_PATH}),并注意到.dll路径存储在
capstone._path
中:)输出: