使用Cython保護Python源代碼
- 2020 年 1 月 13 日
- 筆記
使用Cython保護Python源代碼
**保護您的Python源不受不必要的影響,說起來容易做起來難,因為.pyc位元組碼是可反編譯的,並且混淆很容易被反向工程。我花了一段時間才弄清楚隱藏Python代碼的正確方法…… Cython是一個優化的靜態編譯器,可以將.py模塊轉換為高性能的C文件,生成的C文件可以毫不費力地編譯到本機二進制庫中。編譯完成後,無法將編譯庫轉換回可讀的Python源代碼!
1. 安裝 Cython
pip install cython
2. 添加 hello.pyx
假設在hello.pyx文件中的一個簡單的「hello world」腳本:
def say_hello_to(name): print("Hello %s!" % name)
注意文件後綴是pyx
3. 添加相應的setup.py腳本
from distutils.core import setup from Cython.Build import cythonize setup(name='Hello world app', ext_modules=cythonize("hello.pyx"))
4. 編譯
根據您使用的Python版本,運行:
python setup.py build_ext --inplace
成功構建後,您可以刪除.c和.py文件,並僅保留.so文件
5.測試
#!/usr/bin/env python from hello import say_hello_to say_hello_to('mstools')