python-cx_freeze无法包含Cython .pyx模块
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-cx_freeze无法包含Cython .pyx模块,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1342字,纯文字阅读大概需要2分钟。
内容图文
![python-cx_freeze无法包含Cython .pyx模块](/upload/InfoBanner/zyjiaocheng/663/7f589bcb00514af594ccc248ee479d00.jpg)
我有一个Python应用程序,最近在其中添加了Cython模块.使用pyximport从脚本运行它可以正常工作,但我还需要使用cx_freeze构建的可执行版本.
麻烦的是,尝试构建它会给我一个可执行文件,该可执行文件会引发ImportError并试图导入.pyx模块.
我这样修改了setup.py,以查看是否可以先编译.pyx以便cx_freeze可以成功打包它:
from cx_Freeze import setup, Executable
from Cython.Build import cythonize
setup(name='projectname',
version='0.0',
description=' ',
options={"build_exe": {"packages":["pygame","fx"]},'build_ext': {'compiler': 'mingw32'}},
ext_modules=cythonize("fx.pyx"),
executables=[Executable('main.py',targetName="myproject.exe",base = "Win32GUI")],
requires=['pygcurse','pyperclip','rsa','dill','numpy']
)
…但是,所有给我的就是在构建时在cx_freeze中没有名为fx的模块.
我该如何工作?
解决方法:
解决的办法是对setup()进行两个单独的调用.一个用Cython构建fx.pyx,然后一个用cx_freeze打包EXE.这是修改后的setup.py:
from cx_Freeze import Executable
from cx_Freeze import setup as cx_setup
from distutils.core import setup
from Cython.Build import cythonize
setup(options={'build_ext': {'compiler': 'mingw32'}},
ext_modules=cythonize("fx.pyx"))
cx_setup(name='myproject',
version='0.0',
description='',
options={"build_exe": {"packages":["pygame","fx"]}},
executables=[Executable('main.py',targetName="myproject.exe",base = "Win32GUI")],
requires=['pygcurse','pyperclip','rsa','dill','numpy']
)
内容总结
以上是互联网集市为您收集整理的python-cx_freeze无法包含Cython .pyx模块全部内容,希望文章能够帮你解决python-cx_freeze无法包含Cython .pyx模块所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。