Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将未更改的C扩展打包为新Python包的一部分?_Python_Packaging_Distutils - Fatal编程技术网

如何将未更改的C扩展打包为新Python包的一部分?

如何将未更改的C扩展打包为新Python包的一部分?,python,packaging,distutils,Python,Packaging,Distutils,我已经向pypi发布了一个新版本的Python包,没有更改C扩展。由于我只更改了Python代码,而没有更改C代码,因此如何打包我为多个平台编译的共享库而不必重新编译?以名为“somelib”的库为例,该库的编译库位于两个子目录lib-i386和lib-amd64中: MANIFEST.in包含以下内容: include __init__.py include setup.py include somelib/* include somelib/lib-i386/* include someli

我已经向pypi发布了一个新版本的Python包,没有更改C扩展。由于我只更改了Python代码,而没有更改C代码,因此如何打包我为多个平台编译的共享库而不必重新编译?

以名为“somelib”的库为例,该库的编译库位于两个子目录lib-i386和lib-amd64中:

MANIFEST.in包含以下内容:

include __init__.py
include setup.py
include somelib/*
include somelib/lib-i386/*
include somelib/lib-amd64/*
py包含(我省略了对版本控制问题不重要的行):

所有库对象都在包内,但只安装特定于“arch”的库对象

# 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
)