本文最后更新于1021 天前,其中的信息可能已经过时,如有错误请发送邮件到2192492965@qq.com
Cython提升python运行速度
1.安装
pip
pip install cython
ancoda
conda isntall cython
2. 创建测试文件
用tkinter随便创建了一个窗口,将其后缀改为.pyx
login.pyx
import tkinter as tk
class LoginWindow:
def __init__(self, root):
self.root = root
self.root.geometry("250x150")
self.root.title("登录界面")
# 创建用户名标签和输入框
self.username_label = tk.Label(self.root, text="用户名:")
self.username_label.grid(row=0, column=0)
self.username_entry = tk.Entry(self.root)
self.username_entry.grid(row=0, column=1)
# 创建密码标签和输入框
self.password_label = tk.Label(self.root, text="密码:")
self.password_label.grid(row=1, column=0)
self.password_entry = tk.Entry(self.root, show="*")
self.password_entry.grid(row=1, column=1)
# 创建登录按钮
self.login_button = tk.Button(self.root, text="登录", command=self.login)
self.login_button.grid(row=2, column=0, columnspan=2, pady=10)
def login(self):
# 获取用户名和密码
username = self.username_entry.get()
password = self.password_entry.get()
# 模拟登录验证
if username == "admin" and password == "123456":
print("登录成功!")
else:
print("用户名或密码错误!")
if __name__ == "__main__":
root = tk.Tk()
login_window = LoginWindow(root)
root.mainloop()
3. 创建setup文件
将其保存在同目录下
setup.py
from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize('login.pyx',language_level=3)# language_level=3 代表只适配python3版本,默认都适配
)
4. 将python文件编译为c语言
python setup.py build --inplace
可选参数:
--include-dir:指定编译时包含的C/C++头文件或其他.py或.pyx文件
--output-file:指定解析后的C/C++源代码文件的所在路径
--inplace: 表示放在源文件旁边
--working:指定cython解析器的工作目录
-2或-3:-2告知cython解析器以python2的方式理解python源代码,-3告知cython解析器以python3的方式去理解python源代码
5. 引用编译后生成的.pyd文件
import login
import tkinter as tk
root = tk.Tk()
login.LoginWindow(root)
root.mainloop()










