加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读