我正在尝试创建一个 Python 发行版,我必须在其中包含源代码和编译后的二进制文件。(是的,我阅读了反对/支持添加的论据.pyc
,但我的用例需要.pyc
添加)。在 Windows 中运行我的步骤,源代码和编译后的二进制文件都添加到输出文件中(我同时使用了sdist
和bdist_wheel
)。
假设我有以下结构:
root
+--folderA
+--alpha
+--beta
+--__init__.py
+--folderB
folderA
包含源代码,同时folderB
包含其子目录中的其他文件。
完成的步骤:
- 模块使用编译
compileall
- 中的来源
alpha
被删除。中的来源beta
被保留。 - 跑
python setup.py sdist|bdist_wheel
我find_packages()
在 setup.py 中使用来检测模块。在找到模块时alpha
,未检测到模块beta
。
在Windows 中的结果.tgz
和文件中,所有需要的文件都在那里。.whl
一切都很好。
但是,在 Linux(具体是 Ubuntu)中执行相同的过程时,只beta
添加了 中的模块和一些模块,folderB
而没有添加其他不同类型的文件和模块alpha
. sdist
只会给出 source whilebdist
并且bdist_wheel
只会给出.pyc
s。我知道这sdist
是用于分发源文件,而bdist
用于二进制文件。
我的问题是为什么 Windows 中的行为不同,是否可以在 Linux 中产生相同的输出(源文件和.pyc
其他文件)?
我正在使用 Python 2.7。