使用python模块分发预构建的库
发布时间:2020-12-20 13:23:34 所属栏目:Python 来源:网络整理
导读:我使用以下脚本来分发包含纯 python代码的模块. from distutils.core import setup,Extensionimport ossetup (name = 'mtester',version = '0.1',description = 'Python wrapper for libmtester',packages=['mtester'],package_dir={'mtester':'module'},)
我使用以下脚本来分发包含纯
python代码的模块.
from distutils.core import setup,Extension import os setup (name = 'mtester',version = '0.1',description = 'Python wrapper for libmtester',packages=['mtester'],package_dir={'mtester':'module'},) 我遇到的问题是,我修改了一个使用外部库(.so文件)的文件,我需要将其与现有模块一起发布.我被建议使用package_data来包含库.我将脚本修改为以下内容. from distutils.core import setup,Extension import os data_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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |