我在没有更改C扩展名的情况下向pypi发布了新版本的Python包。由于我只更改了Python代码,而不是C代码,如何打包我为多个平台编译的共享库而无需重新编译?
答案 0 :(得分:1)
作为一个名为'somelib'的库的示例,在两个子目录中有编译库,lib-i386和lib-amd64:
MANIFEST.in包含以下内容:
include __init__.py
include setup.py
include somelib/*
include somelib/lib-i386/*
include somelib/lib-amd64/*
setup.py包含(我省略了对版本控制问题不重要的行):
# Determine machine arhitecture
arch = os.uname()[4]
libname = "lib-%s" % (arch,)
lib_files = glob.glob('./somelib/' + libname + '/*')
data_files = [('somelib',
lib_files + ['__init__.py', 'somelib/README.TXT']),]
setup(
...
data_files=data_files
)
所有库对象都在包内,但只安装了特定于'arch'的库对象。
HTH。