sdist/bdist_wheel 不包括 Linux 中的 pyc 但包括在 Windows 中
sdist/bdist_wheel not including pyc in Linux but is included in Windows
我正在尝试创建一个 Python 分发版,我必须在其中包含源代码和编译后的二进制文件。 (是的,我阅读了参数 against/for 添加 .pyc
,但我的用例需要添加 .pyc
)。 运行我在 Windows 中的步骤,源代码和编译后的二进制文件都添加到输出文件中(我同时使用了 sdist
和 bdist_wheel
)。
假设我有以下结构:
root
+--folderA
+--alpha
+--beta
+--__init__.py
+--folderB
folderA
包含源代码,而 folderB
包含其子目录中的其他文件。
完成的步骤:
- 模块使用
compileall
编译
alpha
中的来源已删除。保留 beta
中的来源。
- 运行
python setup.py sdist|bdist_wheel
我在setup.py中使用了find_packages()
来检测模块。未检测到 alpha
中的模块,但找到了 beta
中的模块。
在 Windows 中的结果 .tgz
和 .whl
个文件中,所有需要的文件都在那里。一切都很好。
然而,当在Linux(具体为Ubuntu)中执行相同的过程时,仅添加了beta
中的模块和folderB
中的一些模块但不是其他不同类型的文件和模块alpha
。 sdist
将仅提供来源,而 bdist
和 bdist_wheel
将仅提供 .pyc
。我知道 sdist
用于分发源文件,而 bdist
用于二进制文件。
我的问题是 为什么 Windows 中的行为不同,是否有可能在 Linux 中产生相同的输出(来源和 .pyc
以及其他文件)?
我正在使用 Python 2.7.
要在 sdist 中包含文件,请将它们添加到 MANIFEST.in:
global-include *.py *.pyc
在 Linux 上将 *.pyc
加入 wheels 对我来说没有任何特殊配置,我只是这样做
python setup.py build
python -m compileall build
python setup.py sdist
python setup.py bdist_wheel
PS。如果你试图向人们隐藏消息来源——你就走错了路。 *.pyc
个文件可以反编译。那里有一个disassembler in standard library and there are many decompilers and uncompilers。
我正在尝试创建一个 Python 分发版,我必须在其中包含源代码和编译后的二进制文件。 (是的,我阅读了参数 against/for 添加 .pyc
,但我的用例需要添加 .pyc
)。 运行我在 Windows 中的步骤,源代码和编译后的二进制文件都添加到输出文件中(我同时使用了 sdist
和 bdist_wheel
)。
假设我有以下结构:
root
+--folderA
+--alpha
+--beta
+--__init__.py
+--folderB
folderA
包含源代码,而 folderB
包含其子目录中的其他文件。
完成的步骤:
- 模块使用
compileall
编译
alpha
中的来源已删除。保留beta
中的来源。- 运行
python setup.py sdist|bdist_wheel
我在setup.py中使用了find_packages()
来检测模块。未检测到 alpha
中的模块,但找到了 beta
中的模块。
在 Windows 中的结果 .tgz
和 .whl
个文件中,所有需要的文件都在那里。一切都很好。
然而,当在Linux(具体为Ubuntu)中执行相同的过程时,仅添加了beta
中的模块和folderB
中的一些模块但不是其他不同类型的文件和模块alpha
。 sdist
将仅提供来源,而 bdist
和 bdist_wheel
将仅提供 .pyc
。我知道 sdist
用于分发源文件,而 bdist
用于二进制文件。
我的问题是 为什么 Windows 中的行为不同,是否有可能在 Linux 中产生相同的输出(来源和 .pyc
以及其他文件)?
我正在使用 Python 2.7.
要在 sdist 中包含文件,请将它们添加到 MANIFEST.in:
global-include *.py *.pyc
在 Linux 上将 *.pyc
加入 wheels 对我来说没有任何特殊配置,我只是这样做
python setup.py build
python -m compileall build
python setup.py sdist
python setup.py bdist_wheel
PS。如果你试图向人们隐藏消息来源——你就走错了路。 *.pyc
个文件可以反编译。那里有一个disassembler in standard library and there are many decompilers and uncompilers。