在CPython当中,我们可以透过Cython的技术,将Python程式码加以编译来保护程式码,并加速程式的执行。一般作法需要另外准备setup.py,并透过命令列来加以编译。为了简化步骤,我写了以下的script。在Anaconda Spyder执行该script,随即跳出档案选择视窗。选择要编译的.pyx档即可生成.pyc档。
import os
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
pyx_path = filedialog.askopenfilename(initialdir = "d:/demo",
title = "Select file",
filetypes = (("pyx files","*.pyx"), ("all files","*.*")))
pyx_dir = os.path.dirname(pyx_path)
os.chdir(pyx_dir)
pyx_name = os.path.basename(pyx_path)
setup = '''from distutils.core import
setup from Cython.Build import cythonize
setup(name='', ext_modules=cythonize("{}"))'''.format(pyx_name)
with open('setup.py', 'w