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
ClericPy
V2EX  ›  Python

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

  •  
  •   ClericPy ·
    ClericPy · 2021-08-14 14:52:42 +08:00 · 3610 次点击
    这是一个创建于 1182 天前的主题,其中的信息可能已经有所发展或是发生改变。
    pypy 貌似绿色版之前用过还可以

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

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

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

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

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

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

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

    以往可能是因为 py 代码确实没有分发需求吧,毕竟直接分发源码之类的确实玄学(顺带一提,混淆也没搞好)。不过现在整个编译工具链分发,ffi 之类的也很成熟了,业务上也出现 renpy 之类的游戏需要分发的问题,目前看起来还是各家自己撸一套自用框架封装代码。只能说可能从侧面说明 py 的火热全靠机器学习带动,其他方面都是小众需求根本没人搞
    jeeyong
        15
    jeeyong  
       2021-08-19 11:09:34 +08:00   ❤️ 1
    python 安装的时候有个提供给单用户的模式..
    然后把里面的文件提出来就是你要的单解析器和基本库了.
    ClericPy
        16
    ClericPy  
    OP
       2021-08-20 19:40:01 +08:00
    @jeeyong 有点好奇, 如果这么容易提取, 目前还没什么人或组织甚至官方把它做成绿色版呢... 是跨 win 系统有兼容性问题还是不安全还是有什么其他依赖不全
    jeeyong
        17
    jeeyong  
       2021-08-20 20:07:24 +08:00
    ClericPy
        18
    ClericPy  
    OP
       2021-08-20 22:00:10 +08:00
    @jeeyong 印象中这个缺 tk pip 之类的... linux 上也没有. 不指望了, 明年继续问
    llsquaer
        19
    llsquaer  
       2021-08-21 19:03:19 +08:00
    官网就有一个瘦身的包 10M 左右的包 直接下。 相当于一个虚拟环境 。。但是这个包没有 pip tk 等。。名字一下忘了。。你找一下就好了。。文件包最小的那个试试。。
    ClericPy
        20
    ClericPy  
    OP
       2021-08-21 20:40:11 +08:00
    @llsquaer 嗯, 就是那个嵌入式的, 平时是够用了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2756 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:06 · PVG 22:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.