我正在打包一个Python包,其中包含大约20个Python模块和一个共享库[1]。我已经创建了以下setup.py
文件:
from setuptools import setup, find_packages
setup(
name = "mypack",
version = "1.0",
author = "Bill Coder",
author_email = "bill.coder@email.com",
description = ("My Code"),
packages=find_packages(),
long_description="Long description",
)
文件系统是这样的:
mypack/
__init__.py
sub_pack1/
__init__.py
module1.py
module2.py
sub_pack2
__init__.py
moduleA.py
shared_library.so
我试过以下命令:
bash% python -m build --wheel
和
bash% python setup.py bdist_wheel
在这两种情况下都组装了一个wheel包,但是共享库mypack/subpack2/shared_library.so
是而不是包含在最终产品中。
[1]:共享库来自pyx文件上的cythonize
。理想情况下,我希望将扩展构建为setup.py
的一部分-但现在我满足于外部构建过程的更温和的野心,然后将所有内容打包成我可以自己安装的包。该包的目的只是作为CI和目标之间的临时步骤-该包将不会被发布。
添加include_package_data=True
到您的setup.py.
您可能需要在您的项目根目录中包含一个MANIFEST.in
文件,该文件指向附加文件:
include mypack/sub_pack2/shared_library.so
更多信息在这里