使用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')