我可以在字节编译后删除python源文件(* .py)吗?我知道这不提供安全性,并且.pyc / o文件可以很容易地进行逆向工程;我只想在一个版本上发布更少的文件。
# Clean the python cache
find ./mypythonstuffs -type f -name "*.py[co]" -delete
find ./mypythonstuffs -type d -name "__pycache__" -delete
# Remove test directories
find ./mypythonstuffs -name "test" -type d -exec rm -r "{}" \;
# Byte-compile, ignoring .git subdirectories
python3 -O -m compileall -f -x r'[/\\][.]git' ./mypythonstuffs
# Remove now-unnecessary??? python source files
find ./mypythonstuffs -type f -name "*.py" -delete
答案 0 :(得分:3)
请不要这样做。
首先,python字节码是一个未记录的实现细节。无法保证将字节码分发给其他人实际上可以正常工作。
其次,它使调试变得困难。您知道回溯如何显示源代码行吗?这是从原始源文件中获取的。即使你根本不关心FOSS,你仍然应该关心从用户那里获得有用的bug报告。
第三,它真的没必要。如果要分发较少的文件,只需分发python源文件。字节码是一个实现细节。您不应该首先检查或分发它。
答案 1 :(得分:-1)
是的,您可以将应用程序作为.pyc
个文件提供。
但是,如果您只想减少文件数量,则可以提供.py
个文件而不是.pyc
个文件,对吗?