我正在尝试创建一个 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只会给出.pycs。我知道这sdist是用于分发源文件,而bdist用于二进制文件。
我的问题是为什么 Windows 中的行为不同,是否可以在 Linux 中产生相同的输出(源文件和.pyc其他文件)?
我正在使用 Python 2.7。