因为要把程序发布到许多用户可以访问的 Docker 容器中,一些项目可以用 cython 编译成 so ,效果还可以,但是有些用到了 pydantic 、json 转换之类的库的项目用 cython 加密会导致程序运行出错,比如有的类型转换校验会出错。不改动原程序的话,这样的项目不能用 cython 了。好像还有一个 pyarmor 也能加密项目,但是它的授权方案不适合项目场景,请问各位还有其他方案吗?
16 条回复 • 2026-02-24 10:18:30 +08:00
|
1
bigtear OP 话说没试过 nuitka ,之前用 nuitka 编译带 torch 的项目时间太长了,感觉小项目的话可以试试
|
|
2
foolishcrab 2025 年 5 月 14 日 via iPhone
你是要发一个 public image 但是其中的 python 程序不想被看到源码?
理论上没有完全不能逆向的办法,或者需要重新考虑下分发模式 |
|
3
Riyue 2025 年 5 月 14 日 https://skywind.me/blog/archives/3002
貌似是在 V2EX 看到并收藏的文章,文章后半部分讲了 python 加密 |
|
4
vicalloy 2025 年 5 月 14 日
为什么第三方库也要编译,不管还是 cython 还是 nuitka 都可以只编译自己的代码。
|
|
5
user1284 2025 年 5 月 14 日
用...ai 改成 rust 重写
|
|
6
iorilu 2025 年 5 月 14 日
docker 发布还想保护源码, 不太可能
如果你真有啥牛逼算法, 建议搞成服务器得服务 否则就算了, 不一定有人关心你的源码, 这年头随便啥功能, 让 ai 写一个能有多难 |
|
7
312ybj 2025 年 5 月 14 日 nuitka 够你用了,你之前试的时间长,那是因为是第一次打包, 要把所有的都打成 C , 后续打包分钟级别就能完成了。 至于授权方案, 可以自己校验 sn 就行了,很容易扩展的
|
|
9
weijar 2025 年 5 月 14 日
自己写个程序把变量名混淆了。
十年前我我写 python 程序卖时就自己整过一个 https://pyob.oxyry.com/ 这个小工具开发花了一星期,当然我早就不用 python 所以那个也早已废弃不更新了。 |
|
10
jettzhang 2025 年 5 月 14 日
nuitka 就完事了
|
|
11
bronyakaka 2025 年 5 月 14 日
混淆+Cython ,又快又简单
|
|
12
bronyakaka 2025 年 5 月 14 日
@bronyakaka 没注意标题,忽略
|
|
13
maocat 2025 年 5 月 15 日
|
|
15
rahj 2025 年 5 月 21 日
用的不靠谱
|
|
16
bigtear OP |
推荐学习书目
› 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