首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

请问有什么方式能把 Cython 代码编译为纯 Python 代码?

  •  
  •   guyskk0x0 · 22 天前 · 1279 次点击

    我有一个库使用 Cython 编写,以提高执行速度,但很多场景安装 gcc 等编译工具很麻烦,所以想同时提供一个纯 Python 的版本,而我又不想类似的代码写两套。

    有什么办法能把 .pyx 文件中的静态类型声明等等去掉,变成纯 Python 代码?

    8 回复  |  直到 2019-11-16 21:17:37 +08:00
        1
    monsterxx03   22 天前   ♥ 1
    应该打个 wheel 格式的包, 其他地方安装的时候就不用编译了: https://pythonwheels.com/
        2
    guyskk0x0   21 天前
    @monsterxx03 wheel 包需要在 windows, mac, linux 上分别打包,也是很麻烦
        3
    superrichman   21 天前 via iPhone
    也许可以考虑扔到 docker 里去?
        4
    ethego   21 天前
    当然要分别打包,cython 写的玩意是编译到 c 再进一步编译到 binary 的,没有可以编译到 python 的方法。如果要分发二进制,就需要按系统分别打包。
        5
    ethego   21 天前
    不可以,你可以在手写一个纯 python 的版本。
        6
    wangyzj   21 天前
    pyinstaller
        7
    hakono   21 天前 via iPhone   ♥ 1
    别瞎想,照着你的 c 代码再写个 python 实现更快
        8
    guyskk0x0   20 天前
    @ethego #4
    @hakono #7
    我暂时用正则和字符串替换实现了 .pyx 转 .py ,实现很不优雅,靠单元测试保证转换后功能正确。
    https://github.com/guyskk/validr/pull/30/files#diff-fcbabf283e1a432f9d3830f80cd5bdd3
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2374 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 08:32 · PVG 16:32 · LAX 00:32 · JFK 03:32
    ♥ Do have faith in what you're doing.