推荐学习书目
› 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
doraemon0711
V2EX  ›  Python

最近在用 Python ,有些混乱请教一下大家

  •  
  •   doraemon0711 · May 5, 2023 · 6921 views
    This topic created in 1277 days ago, the information mentioned may be changed or developed.
    主要是包管理和版本管理工具的选择是怎样的

    我是在 wsl 上运行,现在是想跑一些机器学习的项目,之后可能也会自己开发一些小工具或爬虫; 平时我都是用 pyenv 配合 pip 来使用 python ,在接触机器学习时听说安装 conda 更好一些
    我的理解是 pyenv 用来管理版本,conda 替代 pip 用来管理包,但我实际操作了一下发现可以在 pyenv 中安装 conda(conda 被当作了一种 python 版本),再在 conda 中不同虚拟环境下安装不同版本的 python ,感觉变成了一个套娃...所以现在用 python 的最佳实践方式是怎样的?
    33 replies  •  2023-05-06 14:51:11 +08:00
    MetroWind
    MetroWind
    May 5, 2023
    1
    咳咳 conda 自带 venv 的机制:`conda create`
    ispinfx
    ispinfx
    May 5, 2023
    2
    poetry / pdm
    Macv1994
    Macv1994
    May 5, 2023❤️2
    3
    python -m venv venv
    Carson089
    Carson089
    May 5, 2023
    4
    算法的最佳实践是 anaconda/miniconda 的 python 版本 与 docker
    noahliaszn
    noahliaszn
    May 5, 2023
    5
    包管理工具可太多了 最近还有个 rye( https://github.com/mitsuhiko/rye)
    NoOneNoBody
    NoOneNoBody
    May 5, 2023❤️1
    6
    应该是环境管理,不叫版本管理吧
    用其中之一就行,混用自然混乱

    conda 在 windows 中的优势是,有些需要编译的包,设计者当初是没有考虑 windows 的,所以在 windows pip 编译安装会出现奇奇怪怪的问题,安装失败;其中部分,conda 做了预编译,装起来就比较顺
    dayeye2006199
    dayeye2006199
    May 5, 2023 via Android
    7
    用了 conda 就不用 pyenv 了。
    conda 可以管理 py 版本和环境。
    hb751968840
    hb751968840
    May 5, 2023
    8
    pyenv 机器学习踩了一个坑,不推荐,安装 torch 特定版本没办法使用-f https://download.pytorch.org/whl/torch_stable.html
    ykk
    ykk
    May 5, 2023
    9
    用 conda ,四年算法没用过 pyenv
    craiiz
    craiiz
    May 5, 2023
    10
    之前一直有 pyven, 后来有一次 pip 安装 triton 一直失败,conda 安装 一次成功之后就转 conda 了
    BBCCBB
    BBCCBB
    May 5, 2023
    11
    直接用 miniconda, 管理 python 多个环境, 安装你可以全部 pip, 也可以全部 conda, 也可以 poetry 这种..

    conda 比 pyenv 好..
    declandragon
    declandragon
    May 5, 2023
    12
    用三楼的方式 python -m venv venv
    hertzry
    hertzry
    May 5, 2023
    13
    无需安装 python ,直接 miniconda 走起,一个项目开一个虚拟环境,默认 base 环境不动。

    conda create -n your_env_name
    conda activate your_env_name
    conda install package_name
    bigjack
    bigjack
    May 5, 2023
    14
    virtualenv
    evemoo
    evemoo
    May 5, 2023
    15
    virtualenv +1
    不过迁移的时候要确保两边环境的默认 Python 版本一致
    iorilu
    iorilu
    May 5, 2023 via Android
    16
    别折腾了, 随便那个平台,用 miniconda 就行
    jaredyam
    jaredyam
    May 5, 2023
    17
    miniconda 够用了
    paopjian
    paopjian
    May 5, 2023
    18
    conda/miniconda 好用的地方是可以指定 python 版本,venv 的好处是库比较纯净.
    alne
    alne
    May 5, 2023
    19
    conda 吧,机器学习一堆二进制包用 conda 不至于搞乱系统环境
    Wataru
    Wataru
    May 5, 2023
    20
    conda 好点,一个东西一个环境,不会搞乱
    doraemon0711
    doraemon0711
    OP
    May 5, 2023
    21
    谢谢,准备试试 miniconda ,再问个问题,如果不动 base 环境,但想加一些全局的命令(例如 tldr)该怎么做
    apake
    apake
    May 5, 2023
    22
    版本管理 miniconda/pyenv + 包管理 pip/poetry/pdm. 搞机器学习一般用 conda
    Ricardoo
    Ricardoo
    May 5, 2023❤️1
    23
    @doraemon0711 #21 激活的环境会继承全局命令的,不用担心。它实际是填加新环境的 bin 目录到 PATH 中,拿{conda_install_home}/envs/{env_name}/bin 里的命令覆盖掉全局同名命令,非同名命令在各个 conda 环境里都可以使用
    SenLief
    SenLief
    May 5, 2023 via iPhone
    24
    我自己使用 miniconda 和 venv 的,conda 管理版本,venv 创建环境。
    whitewinds
    whitewinds
    May 5, 2023
    25
    miniconda 管理虚拟环境
    pip-compile 管理包
    zengxs
    zengxs
    May 5, 2023
    26
    需要预编译的依赖就用 conda
    最求新 python 版本就 pyenv
    cherbim
    cherbim
    May 5, 2023
    27
    个人建议,无脑选择 conda 吧
    wizardyhnr
    wizardyhnr
    May 5, 2023
    28
    不要用 conda 了,以前 pip 编译麻烦的时候 conda 的编译包很方便。但现在 pip 支持 wheel 很久了,用 pip 安装的 numpy/scipy/pytorch 都是编译好的,想想 pytorch 用的是 CUDA 的接口,pip 也可以一行命令安装了。conda 占内存大,安装包检查时间长,channel 里面一些小众包也没有,最后都是 conda/pip 混用。pyenv 也是可以创建多个环境的。
    wizardyhnr
    wizardyhnr
    May 5, 2023
    29
    主流操作系统现在都支持安装不同版本的 Python 了,你用不同版本的 pyenv 就可以创建不同版本号的环境了。
    amlee
    amlee
    May 5, 2023
    30
    @doraemon0711 有一个 pipx ,可以将 python 的命令行软件添加到全局 path ,又不影响 base 环境,很好用
    qYs9wxnXG96c6z1t
    qYs9wxnXG96c6z1t
    May 5, 2023
    31
    没用过 conda ,一直用的 pipenv 管理环境
    gumupaier
    gumupaier
    May 6, 2023
    32
    建议无脑选择 conda
    Oilybear
    Oilybear
    May 6, 2023
    33
    1. conda env 、pyenv 都是环境管理,允许多个 python 环境,pip 和 conda install 是单个环境中的第三方库 /包管理。
    2. 现在的优劣就像楼上#28 说的,剩下的就看你个人选择了。
    3. 至于楼上那个#13 说的无需安装 python 的,什么叫无需安装?安装无非不就是在你磁盘留下相关文件,环境变量加上可执行文件的所在目录让 OS 能找得到可以用上? conda create -n fuxkurtalk python=3.x 不下载对应的 python ?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5176 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 01:19 · PVG 09:19 · LAX 17:19 · JFK 20:19
    ♥ Do have faith in what you're doing.