瞭解 Python 的都知道 Pyinstaller 能夠將 .py
文件打包成 windows 下可執行的 .exe
文件, 可是在咱們不想讓他人反編譯獲取源碼的時候就顯得無能爲力, 此時咱們能夠了解 .pdy
文件。python
pyc
是二進制文件, 是由 Python 編譯器進行編譯後生成的文件, 加載速度快。pyo
是優化編譯後的二進制文件, 能夠經過 python -O file.py
生成。pyd
則是 Python 的動態連接庫, 由其餘語言編寫。windows
那 .pyd
可不能夠反編譯呢?函數
這是文檔上的一段描述, .pyd
由 C 或者 C++ 編譯組成, 至於它是否徹底不可反編譯, 我相信是不可能的, 僅是加大了反編譯的難度。優化
你須要安裝 Cython
以及 pyinstaller
兩個擴展包做爲依賴。 Docsui
main_code.py
文件中, 建議提供入口函數 main()
build.py
代理並鍵入如下內容:from distutils.core import setup
from Cython.Build import cythonize
setup(
name='隨你寫什麼',
ext_modules=cythonize([
"main_code.py", # 你的主要代碼封裝文件名
])
)
複製代碼
python3 build.py build_ext --inplace
生成 .pyd
文件.pyd
爲 main_code.pyd
run.py
並鍵入如下內容:from main_code import *
if __name__ == '__main__':
main()
複製代碼
此時你能夠嘗試修改 main_code.py
成別的名字, 並運行 run.py
文件, 你會發現運行正常。pyinstaller -D -i xxx.ico -w run.py
最後你會發現你的代碼中沒有 .pyc
的主要邏輯代碼。spa
爲了使用打包的時候使用 -D
而不使用 -F
?代理
在生成惟一 .exe
文件後執行速度過慢, 固然我僅僅是推薦, 你能夠使用任何自定義的方式編譯你想要的效果。code
點個讚唄~cdn