强制Python包setup.py bdist_wheel在子目录中包含二进制文件

时间:2015-05-18 20:43:56

标签: python pip python-wheel

我有一个Python包,其中包含bin_win32bin_win64bin_osxbin_lnx32bin_lnx64子目录,其中包含适用于相应平台的二进制文件通过Python文件steamcloud.py调用。当我运行python setup.py bdist_wheel --universal时,生成的轮子不包含这些子目录中的文件,只包括Python文件。如何将这些包含在方向盘中?

注意:我知道1)--universal标志仅适用于Python包,2)我应该为每个平台创建单独的轮子。但是,我无法访问Windows或Linux计算机进行开发,并且没有特定于Linux的轮子的命名约定。

可以找到setup.py的内容here

1 个答案:

答案 0 :(得分:0)

嗯,第一个问题是您的项目没有遵循预期的布局,因此除了setup()和{{package_dir之外,您还需要使用packages参数调用package_data 1}}参数(参见installing package data)。

package_dir={'airship': '<path_to_package>/airship'}

但是,您尝试包含的文件并不是真正的包数据,因此您可能不希望像现在这样将它们添加到package_datapackage_data解释相对于包的路径,而不是相对于项目根的路径。相反,请使用data_files,以便提供相对于setup.py文件的路径。