V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
bigtear
V2EX  ›  Python

除了 Cython 和 Pyarmor, Python 还能如何保护源代码

  •  
  •   bigtear · 21 小时 27 分钟前 · 1170 次点击
    因为要把程序发布到许多用户可以访问的 Docker 容器中,一些项目可以用 cython 编译成 so ,效果还可以,但是有些用到了 pydantic 、json 转换之类的库的项目用 cython 加密会导致程序运行出错,比如有的类型转换校验会出错。不改动原程序的话,这样的项目不能用 cython 了。好像还有一个 pyarmor 也能加密项目,但是它的授权方案不适合项目场景,请问各位还有其他方案吗?
    12 条回复    2025-05-14 16:54:43 +08:00
    bigtear
        1
    bigtear  
    OP
       21 小时 23 分钟前 via Android
    话说没试过 nuitka ,之前用 nuitka 编译带 torch 的项目时间太长了,感觉小项目的话可以试试
    foolishcrab
        2
    foolishcrab  
       21 小时 17 分钟前 via iPhone
    你是要发一个 public image 但是其中的 python 程序不想被看到源码?
    理论上没有完全不能逆向的办法,或者需要重新考虑下分发模式
    Riyue
        3
    Riyue  
       20 小时 56 分钟前   ❤️ 2
    https://skywind.me/blog/archives/3002
    貌似是在 V2EX 看到并收藏的文章,文章后半部分讲了 python 加密
    vicalloy
        4
    vicalloy  
       20 小时 17 分钟前
    为什么第三方库也要编译,不管还是 cython 还是 nuitka 都可以只编译自己的代码。
    yb2313
        5
    yb2313  
       19 小时 51 分钟前
    用...ai 改成 rust 重写
    iorilu
        6
    iorilu  
       19 小时 45 分钟前
    docker 发布还想保护源码, 不太可能

    如果你真有啥牛逼算法, 建议搞成服务器得服务

    否则就算了, 不一定有人关心你的源码, 这年头随便啥功能, 让 ai 写一个能有多难
    312ybj
        7
    312ybj  
       19 小时 29 分钟前   ❤️ 1
    nuitka 够你用了,你之前试的时间长,那是因为是第一次打包, 要把所有的都打成 C , 后续打包分钟级别就能完成了。 至于授权方案, 可以自己校验 sn 就行了,很容易扩展的
    Ritter
        8
    Ritter  
       18 小时 7 分钟前
    @Riyue 看完才发现是韦易笑的 经常在知乎看到这个大佬
    weijar
        9
    weijar  
       17 小时 45 分钟前
    自己写个程序把变量名混淆了。
    十年前我我写 python 程序卖时就自己整过一个 https://pyob.oxyry.com/
    这个小工具开发花了一星期,当然我早就不用 python 所以那个也早已废弃不更新了。
    jettzhang
        10
    jettzhang  
       17 小时 12 分钟前
    nuitka 就完事了
    bronyakaka
        11
    bronyakaka  
       17 小时 6 分钟前
    混淆+Cython ,又快又简单
    bronyakaka
        12
    bronyakaka  
       17 小时 1 分钟前
    @bronyakaka 没注意标题,忽略
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:56 · PVG 09:56 · LAX 18:56 · JFK 21:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.