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

pyenv install 安装 Python 为什么是从源码编译安装呢??能不能安装编译好的二进制?

  •  
  •   XIVN1987 · 2020-03-18 14:17:46 +08:00 · 3828 次点击
    这是一个创建于 1712 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,,安装过程中总是报缺库安装失败,,有没有安装二进制版本的方法??

    18 条回复    2020-03-27 04:52:36 +08:00
    panda1001
        1
    panda1001  
       2020-03-18 18:03:47 +08:00 via Android
    上 docker?
    ysc3839
        2
    ysc3839  
       2020-03-18 18:57:42 +08:00
    > 为什么是从源码编译安装呢
    因为 pyenv 设计就是自动编译安装。

    > 能不能安装编译好的二进制
    使用包管理配合二进制源安装,或者自行搜索编译好的二进制。
    Tink
        3
    Tink  
       2020-03-18 18:59:08 +08:00 via iPhone
    virtualenv ?
    Kobayashi
        4
    Kobayashi  
       2020-03-18 20:36:13 +08:00 via Android
    ipwx
        5
    ipwx  
       2020-03-18 20:42:01 +08:00
    try anaconda
    zhuangzhuang1988
        6
    zhuangzhuang1988  
       2020-03-18 21:46:43 +08:00
    看下 https://lucumr.pocoo.org/talks/
    里面的 binarypython 这部分
    http://dev.pocoo.org/~mitsuhiko/binarypython.pdf
    里面提到了二进制发布时需要考虑多少情况
    chenqh
        7
    chenqh  
       2020-03-18 22:21:57 +08:00
    借个楼,国内 pyenv 的 python 有加速镜像码?
    Cooky
        8
    Cooky  
       2020-03-19 00:13:34 +08:00 via Android
    conda
    frostming
        9
    frostming  
       2020-03-19 15:47:38 +08:00
    @chenqh 可以手动下载包,然后放到缓存里
    wuwukai007
        10
    wuwukai007  
       2020-03-19 16:08:05 +08:00
    chenqh
        11
    chenqh  
       2020-03-19 17:14:57 +08:00 via Android
    @frostming 好像不行,hash 值的问题
    frostming
        12
    frostming  
       2020-03-19 22:34:19 +08:00
    @chenqh 对,看报错,然后把文件名改成它要的名称
    chenqh
        13
    chenqh  
       2020-03-20 13:24:43 +08:00
    @chenqh 是放~/.pyenv/cache 这个目录码?
    chenqh
        14
    chenqh  
       2020-03-21 10:27:56 +08:00
    @frostming 给个操作步骤?
    frostming
        15
    frostming  
       2020-03-21 16:00:58 +08:00
    @chenqh
    1. 下载 tar.xz 包到本地目录下
    2. 在该目录启动一个本地静态文件服务器 python3 -m http.server 8000
    3. 另起一个窗口,设置环境变量 export PYTHON_BUILD_MIRROR_URL="http://localhost:8000" 把源改成本地服务器
    4. pyenv install 3.8.2 这时会下载不了卡住,停掉就可以
    5. 看服务器打的日志的 access log,会看到它请求的文件名
    6. 把 tar.xz 文件名改成上面看到的地址,重新 pyenv install,就 OK 了
    chenqh
        16
    chenqh  
       2020-03-21 20:29:50 +08:00
    @frostming 谢谢
    lcj2class
        17
    lcj2class  
       2020-03-25 16:02:13 +08:00   ❤️ 1
    @chenqh @frostming
    sohu 有国内代理,可参考这里的 wiki: https://wiki.liujiacai.net/pl/python/
    xingheng
        18
    xingheng  
       2020-03-27 04:52:36 +08:00
    因为 python 的很多库是依赖系统库环境的,比如 sqlite,python3 内置了 sqlite3,但是需要依赖原生的 sqlite 驱动,而驱动层是基于 c 的,不同 arch 环境下编译的最终产物不一样。

    为了不需要分别为各个不同 arch 环境而编译出多个版本,pyenv 选择了直接源码编译,虽然使用者可能碰到很多依赖的问题,但是从通用性上讲会比二进制更好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1892 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:17 · PVG 00:17 · LAX 08:17 · JFK 11:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.