Python 中

it2026-03-31  5

问题:

今天遇到 打包时,whl 没有将有关的文件 打包进 whl 中。


解决问题:

新建的文件夹中没有 "__init __.py " 文件MANIFEST.in 文件中添加需要拷贝的操作

具体详细解释:

__init __.py 作用

标识该目录是一个python的模块包(module package)   如果你是使用python的相关IDE来进行开发,那么如果目录中存在该文件,该目录就会被识别为 module package 。简化模块导入操作   如果你是使用python的相关IDE来进行开发,那么如果目录中存在该文件,该目录就会被识别为 module package 。   example: from mypackage.subpackage_1 import test11 from mypackage.subpackage_1 import test12 配置模块的初始化操作   在了解了 init.py 的工作原理后,应该能理解该文件就是一个正常的python代码文件。因此可以将初始化代码放入该文件中。

MANIFEST.in 作用

MANIFEST.in允许您控制包中包含的文件。

默认情况下,当您实际打包python代码(使用,比方说python setup.py sdist)创建用于分发的压缩存档时,打包程序将仅在包存档中包含一组特定文件(例如,python代码本身)。如果您的存储库中包含文本文件(例如,模板)或图形(用于您的文档),该怎么办?默认情况下,打包程序不会在归档中包含这些文件,并且它将不完整。

MANIFEST.in 允许您覆盖默认值,准确指定zip存档中包含的文件以供分发。

以 VTK PythonPackage 为例: VTKPythonPackage

example:

include CMakeLists.txt include cmake/*.cmake include README.md include vtkVersion.py include scripts/dockcross-manylinux-build-wheels.sh recursive-include scripts/internal * include setup.py include vtk/__init__.py

在打包whl时,包含同目录的一些文件,如cmakelist.txt, cmake/*.cmake README.md vtkVersion.py scripts/dockcross-manylinux-build-wheels.sh vtk/init.py setup.py 以及 迭代的包含 scripts/internal 中的文件。

最新回复(0)