首页   注册   登录
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

请教一下大佬们.py 转.pyd 的方法

  •  
  •   lovejunjie1 · 76 天前 · 1397 次点击
    这是一个创建于 76 天前的主题,其中的信息可能已经有所发展或是发生改变。
    转 pyd 的需求主要是两点。

    1.加速已有部件的运行速度
    2.功能共享,源码保密

    目前已经了解到了 Cython 的 build 方法,目前还没跑通,因为工作原因,必须使用 2.7 的 python,在油管和谷歌上看到的大部分都是 python3 的教程。当我自己把库带入到 2.7 的时候就死活也成功不了。很受打击,有点沮丧。

    后来转到 python 开发包,用 VS2008 直接编译 pyd 扩展。这个我倒是弄明白方法了,但是效率很低,很多输入输出类型需要转换,刚好我某些组件需要提速。关键部分我愿意去重新编译。

    但是还有很多不是过于核心,但是为了代码不被恶意修改后,二次放出。需要保护的地方,这些代码要是一个一个去编译 pyd,我就死了。

    所以请教各位 V 友,如何才能跑通 Cython 批量转换 python2.7 代码的这条路呢?

    或者说还有其他的康庄大道,恳请各位 V 友指点一下

    ps:其中有使用到 pyqt4 的部分,如果 pyqt4 会影响到 Cython 批量转换的话,还请各位大大多提醒一下注意事项
    8 回复  |  直到 2019-04-07 16:42:47 +08:00
        1
    Latin   76 天前 via Android
    编译完也不一定能正常跑,目前还没有特别完善的混淆机制
        2
    www5070504   76 天前
    如果是想保密源代码 用 pyinstaller 也可以
        3
    beordle   76 天前 via Android
    nuitka 一个一个去弄成 so/pyd 就可以了。
        4
    NoAnyLove   74 天前
    版本是硬伤啊。不负责任型推荐<http://nuitka.net/pages/overview.html>,官方描述来看完全符合你的要求,不过我没用过,不知道到底如何。
        5
    lovejunjie1   74 天前
    @www5070504 感谢建议,这个方法不适合我。工作环境是跨平台的,并且不是直接引用的,是在工作环境启动后,在内嵌的 python27 中运行的
        6
    lovejunjie1   74 天前
    @Latin emmmmm,这种事情是因为没镇住八阿哥,还是 Cgrass 的码子写好的锅呀?
        7
    lovejunjie1   74 天前
    @beordle
    @NoAnyLove
    感谢两位,我先去看看哈。不管能不能搞定我都会回来回复哒
        8
    justou   74 天前
    from setuptools import setup, Extension
    from Cython.Build import cythonize

    setup(ext_modules=cythonize(['one.py','two.py'])) 列表里面放要编译成 pyd 的脚本

    python setup.py build_ext --inplace 编译
    编译器用 https://www.microsoft.com/en-us/download/details.aspx?id=44266
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3705 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 38ms · UTC 09:48 · PVG 17:48 · LAX 02:48 · JFK 05:48
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1