from distutils.core import setup,Extensionimport ossetup (name = 'mtester',version = '0.1',description = 'Python wrapper for libmtester',packages=['mtester'],package_dir={'mtester':'module'},)
我遇到的问题是,我修改了一个使用外部库(.so文件)的文件,我需要将其与现有模块一起发布.我被建议使用package_data来包含库.我将脚本修改为以下内容.
from distutils.core import setup,Extensionimport osdata_dir = os.path.abspath('../lib64/')setup (name = 'mtester',package_data={'mtester':[data_dir+'mhelper.so']},)
问题是,添加package_data没有任何区别.这不是在任何位置安装mhelper.so(既不在site-packages中也不在site-packages / mtester中).
系统信息:Fedora 10,64位,python 2.5(是的,它很古老.但它是我们的构建机器,它需要保持这种方式来保持向后兼容性)
任何有助于我解决这个问题的建议都将受到赞赏!
解决方法 不幸的是,package_data会查找相对于包顶部的文件.一个解决方法是使用其余代码移动模块目录下的帮助程序库:% mv lib64/mhelper.so module/
然后相应地修改package_data参数:
package_data = {'mtester': ['mhelper.so']}...
然后测试:
% python setup.py bdist% tar tf dist/mtester-0.1.linux-x86_64.tar.gz | grep mhelper./usr/local/lib/python2.5/dist-packages/mtester/mhelper.so总结
以上是内存溢出为你收集整理的使用python模块分发预构建的库全部内容,希望文章能够帮你解决使用python模块分发预构建的库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)