我使用以下脚本来分发包含纯 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',
version = '0.1',
description = 'Python wrapper for libmtester',
packages=['mtester'],
package_dir={'mtester':'module'},
package_data={'mtester':[data_dir+'mhelper.so']},
)
问题是,添加 package_data 没有任何区别。这不会将 mhelper.so 安装在任何位置(既不在 site-packages 中,也不在 site-packages/mtester 中)。
系统信息:Fedora 10,64 位,python 2.5(是的,它很古老。但它是我们的构建机器,它需要保持这种方式以保持向后兼容性)
任何可以帮助我解决这个问题的建议将不胜感激!