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

2020-03-18 14:17:46 +08:00
 XIVN1987

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

3652 次点击
所在节点    Python
18 条回复
panda1001
2020-03-18 18:03:47 +08:00
上 docker?
ysc3839
2020-03-18 18:57:42 +08:00
> 为什么是从源码编译安装呢
因为 pyenv 设计就是自动编译安装。

> 能不能安装编译好的二进制
使用包管理配合二进制源安装,或者自行搜索编译好的二进制。
Tink
2020-03-18 18:59:08 +08:00
virtualenv ?
Kobayashi
2020-03-18 20:36:13 +08:00
ipwx
2020-03-18 20:42:01 +08:00
try anaconda
zhuangzhuang1988
2020-03-18 21:46:43 +08:00
看下 https://lucumr.pocoo.org/talks/
里面的 binarypython 这部分
http://dev.pocoo.org/~mitsuhiko/binarypython.pdf
里面提到了二进制发布时需要考虑多少情况
chenqh
2020-03-18 22:21:57 +08:00
借个楼,国内 pyenv 的 python 有加速镜像码?
Cooky
2020-03-19 00:13:34 +08:00
conda
frostming
2020-03-19 15:47:38 +08:00
@chenqh 可以手动下载包,然后放到缓存里
wuwukai007
2020-03-19 16:08:05 +08:00
chenqh
2020-03-19 17:14:57 +08:00
@frostming 好像不行,hash 值的问题
frostming
2020-03-19 22:34:19 +08:00
@chenqh 对,看报错,然后把文件名改成它要的名称
chenqh
2020-03-20 13:24:43 +08:00
@chenqh 是放~/.pyenv/cache 这个目录码?
chenqh
2020-03-21 10:27:56 +08:00
@frostming 给个操作步骤?
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
2020-03-21 20:29:50 +08:00
@frostming 谢谢
lcj2class
2020-03-25 16:02:13 +08:00
@chenqh @frostming
sohu 有国内代理,可参考这里的 wiki: https://wiki.liujiacai.net/pl/python/
xingheng
2020-03-27 04:52:36 +08:00
因为 python 的很多库是依赖系统库环境的,比如 sqlite,python3 内置了 sqlite3,但是需要依赖原生的 sqlite 驱动,而驱动层是基于 c 的,不同 arch 环境下编译的最终产物不一样。

为了不需要分别为各个不同 arch 环境而编译出多个版本,pyenv 选择了直接源码编译,虽然使用者可能碰到很多依赖的问题,但是从通用性上讲会比二进制更好。

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

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

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

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

© 2021 V2EX