请教下 Python 上的包管理器和虚拟环境

查看 70|回复 6
作者:jqtmviyu   
刚学 python, 对这方面不是很了解.
对 npm 比较熟悉, 所以拿 npm 来类比.
[ol]
  • 流行的 python 版本管理器是 pyenv 吗? 类似 nodejs 上的 fnm n nvm
  • 流行的 env 环境是 3.3 开始自带的 venv 吗? 还是 poetry (感觉用起来很麻烦)
  • 有类似 pnpm 使用硬链接减少磁盘占用的方案吗?
  • 有办法让 shell(zsh) 进入目录自动 activate env 吗? 类似识别 .nvmrc 文件自动切换
    [/ol]
    目前是使用 pyenv + venv
    [ol]
  • vscode 能自动切换版本, 但 shell 方案没找到
  • pyvenv.cfg里都是绝对路径,python 版本或者项目改名/移动路径岂不是很麻烦
  • 测试新建项目, pip install -r requirements.txt 又从网络重下了一遍
    [/ol]
    是我搜索能力太差还是本来就这样, 怎么感觉比 js 生态还原始.
  • AilF   
    python 包管理和虚拟环境工具还是挺多的,可参考:
    https://alpopkes.com/posts/python/packaging_tools/
    ysc3839   
    1. 个人感觉 pyenv 没那么流行,因为 pyenv 要在本机编译,会很耗时。要用系统包管理没提供的版本的话,Ubuntu 可以用 deadsnakes ppa 源,macOS 可以用 Homebrew ,其他系统如 CentOS 可以用通用的 MiniConda 。
    2. 我自己是习惯用 venv 。
    3. 似乎无?
    linvaux   
    直接用 miniconda 不就好了
    NessajCN   
    用这个吧
    https://github.com/astral-sh/uv
    自动 source 就在 .zshrc 里加 . .venv/bin/activate
    AilF   
    最近又出了个 uv ,速度特别快,但我习惯用国内作者开源的 pdm
    Jirajine   
    js 生态可不原始,一直都是最具活力的生态。
    python 现在现代的工具链就 rye 吧 https://rye-up.com/
    相当于 rustup for python 。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部