2021 年了, 有没有什么好办法可以拿到一个单文件(或者绿色版) Python 解释器?

2021-08-14 14:52:42 +08:00
 ClericPy
pypy 貌似绿色版之前用过还可以

官网有 Windows 的 embed 版本, 算是个绿色版, 不过没找到 linux 上那种类似 Chromium 一样的已经编译好的绿色版用, 而且 embed 版本阉割了不少东西... linux 上没跨发行版的情况下直接把整个安装好的文件夹拷走有时候是可以直接用的, Windows 上把在安装好的文件夹拷走也可以当绿色版. 不过这种绿色版就没什么地方直接下载使用么...

早年间 2.7 用 ss 的时候发现里面就打包了解释器, 解释器就没人考虑过做一份免安装的发出来么
3388 次点击
所在节点    Python
20 条回复
CEBBCAT
2021-08-14 14:56:10 +08:00
你这是要做什么?我记得可以把.py 编译到 exe,那样可以吗?
learningman
2021-08-14 14:56:57 +08:00
pyinstaller
ClericPy
2021-08-14 15:19:45 +08:00
@CEBBCAT
@learningman

我就是只想要个解释器, 代码和依赖我自己打包成 zip 就够了. 至于打包完整程序, 之前确实 pyinstaller 和 nuitka 用的多, 但我实际需要的就是个解释器
Trim21
2021-08-14 15:42:24 +08:00
用 pyinstaller 打包一下 runpy ()
ClericPy
2021-08-14 15:46:17 +08:00
@Trim21 好主意我试试看

目前搜了各路 standalone portable 都没搜到, 不知道是做不到还是没人做. 我试试看吧, 希望内置包都全的, 不然 tk pip 什么的...
israinbow
2021-08-14 18:18:23 +08:00
pycharm 在没有 py 环境的时候会自己下一个解释器, 看看那玩意?
ClericPy
2021-08-14 19:43:31 +08:00
@israinbow 好的, 我看看能不能模仿一份, 自己安装后拷贝出来的话文件夹真够大的...
wangxn
2021-08-14 21:49:27 +08:00
单文件肯定不可能,最起码标准库就是分开的。
LeeReamond
2021-08-15 06:27:31 +08:00
比起楼主这需求,我倒是更想有个通用打包器....pyinstaller 到今天也不好用啊
icepie
2021-08-15 08:03:18 +08:00
不用 cpython 的话 还有 pypy, RustPython...之类的 不过似乎满足不了题主的需求
pursuer
2021-08-15 13:05:57 +08:00
就我了解的情况,python 编译时会查找部分系统库,openssl,libffi,gzip 等,甚至在链接的时候会链接到对应的版本上,因此发行这样的库,需要顺便提取这些依赖打包并配置 LD_LIBRARY_PATH
ClericPy
2021-08-15 17:24:57 +08:00
@wangxn 那只好等明年再问了...

@LeeReamond 感觉还挺好的, 速度一开始觉得慢, 和 nuitka 一比就快多了, 不过就是打包可执行文件各种不顺手, 所以打算改成发布 zip 的代码(带依赖) 然后让对方自己解决解释器的问题. 话说这俩打包工具打包的 standalone 也是要生成一个临时文件夹不是真的单文件很烦

@icepie 之前搜 portable 就看到人家提到这些东西... 不抱期望了

@pursuer 每次打包完了看到一大堆乱七八糟文件就头疼, 记得七八年前用 cx_freeze 的时候, 居然还要考虑 platform 什么的 dll 给 qt 用, 实在不行就不指望了, 以后只发布 zipapp 了
SimonDC
2021-08-15 18:40:32 +08:00
conda pack 把环境打包吧,这也算一种解决方案
LeeReamond
2021-08-16 09:02:36 +08:00
@ClericPy 不是比较起来慢不慢的问题,实际上慢就是一个痛点啊。。明明你机器上预装 py 环境的话,py 代码连接到 idle 的启动可以做到 0.1 秒启动虚拟机。但是搞到单文件以后就慢了几十倍,也不知道为啥这么慢,就这个问题搞了这么多年都没有一个解决方案。

以往可能是因为 py 代码确实没有分发需求吧,毕竟直接分发源码之类的确实玄学(顺带一提,混淆也没搞好)。不过现在整个编译工具链分发,ffi 之类的也很成熟了,业务上也出现 renpy 之类的游戏需要分发的问题,目前看起来还是各家自己撸一套自用框架封装代码。只能说可能从侧面说明 py 的火热全靠机器学习带动,其他方面都是小众需求根本没人搞
jeeyong
2021-08-19 11:09:34 +08:00
python 安装的时候有个提供给单用户的模式..
然后把里面的文件提出来就是你要的单解析器和基本库了.
ClericPy
2021-08-20 19:40:01 +08:00
@jeeyong 有点好奇, 如果这么容易提取, 目前还没什么人或组织甚至官方把它做成绿色版呢... 是跨 win 系统有兼容性问题还是不安全还是有什么其他依赖不全
jeeyong
2021-08-20 20:07:24 +08:00
ClericPy
2021-08-20 22:00:10 +08:00
@jeeyong 印象中这个缺 tk pip 之类的... linux 上也没有. 不指望了, 明年继续问
llsquaer
2021-08-21 19:03:19 +08:00
官网就有一个瘦身的包 10M 左右的包 直接下。 相当于一个虚拟环境 。。但是这个包没有 pip tk 等。。名字一下忘了。。你找一下就好了。。文件包最小的那个试试。。
ClericPy
2021-08-21 20:40:11 +08:00
@llsquaer 嗯, 就是那个嵌入式的, 平时是够用了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795768

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX