Python 除了 Conda 就没有其它的 二进制下载(非源码编译)的版本管理器了吗?

查看 31|回复 3
作者:einsdisp   
主流的编程语言, 都有一个的 version manger, (例如 Node 有大名鼎鼎的 NVM),
可以下载并管理编程语言的不同版本, 并且是直接下载 precompiled 二进制的, 不需要编译.
只有 python, 了解到几个主流的 version manager, 都是下载源码, 还得编译, 还得在 linux 系统中用包管理器安装一堆编译相关依赖(make, gcc 等等一大坨), 甚是蛋疼.
如果本人有洁癖, 不想在系统中安装一堆编译依赖, 也不想使用臃肿的 anaconda/miniconda, 就没别的选择了吗? 还是我孤陋寡闻了?
einsdisp
OP
  
备注一下, 本文讨论的是 CPython 的 version manager, 不是 package 的 version manager
mijazz   
类 conda 的有 Micromamba 可选;赤裸一点的还有 pyenv (pyenv-win) , 看看有没有顺眼的。
印象中确实都是用 tarball 现用现 build 。pyenv 里也有 NOTE: Most Pyenv-provided Python releases are source releases and are built from source as part of installation (that's why you need Python build dependencies preinstalled). 要不试试往 asdf 这些方向试试? https://github.com/asdf-community/asdf-python
不过我一直都是编译几个主要版本就眼不见为净了,arch 系的 base-devel 这些也没有不装的道理。心理安慰一下 CPython 现 build 可以增强 30%
https://github.com/pyenv/pyenv/wiki#how-to-build-cpython-for-maximum-performance
lz4261   
实际上,对于 Python ,也存在能直接安装预编译二进制版的版本管理器工具,这样你就不需要在系统上安装编译依赖。下面列举几个可以考虑使用的 Python 版本管理器:
1. **pyenv**: 虽然默认情况下 pyenv 会从源代码编译 Python ,但它也支持安装预编译的二进制版本。你可以使用`python-build`插件来安装预编译的 Python 二进制,这样就不需要自己编译了。
2. **pythonz**: 和 pyenv 类似,pythonz 也可以让你安装预编译的 Python 二进制版本。它会自动处理安装过程,所以你不需要手动编译 Python 。
3. **conda**: 你提到不想使用 anaconda 或 miniconda ,但实际上它们是非常强大的环境管理和 Python 版本管理工具。conda 包管理器允许你安装来自 Anaconda 仓库的 Python 预编制二进制文件,它们是已经编译好的版本,可以避免依赖问题和编译问题。
4. **pipx**: 虽然它主要是用来全局安装和隔离 Python 命令行工具的,但它也允许你使用不同的 Python 版本,它会管理虚拟环境而不需要手动设置。
5. **Windows 上的 py**: windows 有一个 `py` 启动器,可以让你安装多个 Python 版本并且很容易切换。`py` 是 Python 的官方启动器,它会根据你的需求自动选择合适的 Python 解释器版本。
这些工具都有各自的优势和限制,你可以选择最适合你需求的工具来管理 Python 版本。例如,如果你不想处理任何编译过程并且希望直接从预编译好的版本中选择,使用 conda 可能是比较好的选择。如果你想要一种轻量级的版本管理器,可能 pyenv 的 python-build 插件会是一个合适的选择。
你还可以考虑使用 Docker 这样的容器化技术,它可以让你在一个隔离的容器中安装 Python 的任何版本,而不会影响到你的系统环境。这样你就可以在不在系统上安装任何编译依赖的情况下,使用不同版本的 Python 。
-- 以上:来自 GPT-4
您需要登录后才可以回帖 登录 | 立即注册

返回顶部