感觉 conda 不太好用,随便创建一个环境都比较大(个人感觉

比较大是指什么? 有没有指定 python=3.xx不指定的话 可能把 base 装的都带进去

visual studio

Poetry ?

miniconda

我比较 old , 随便弄弄就 miniconda 。(大部分晴空下懒得弄都是这不嫌弃麻烦就用 miniconda 就官网下载编译安装。然后包管理的话,virtualenv ,就这个了,使用也方便,多敲几行。其它的没怎么用过。

基本没有比 conda/miniconda 好用稳定的了. 我用 miniconda

mirrors.tuna.tsinghua.edu.cn/help/anaconda/

rye-up.com/guide/shims/

mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

简单的项目推荐用 python -m venv 就可以了。

Pip

nixos.org/ nix 命令行工具,可以对不同的项目指定不同的开发环境,互不干扰,与系统默认也不干扰

pipenv缺点是会下载源码编译,需要自己安装编译所需的依赖

pyenv + pipenv

我用 docker

不是专门写 Python 的用 miniconda ,相对熟悉的用 pyenv+poetry, pyenv 管理 python 版本和虚拟环境,poetry 管理包

penv

micromamba

pyenv, pdm, miniconda

简单的小项目我一直我们 Python venv 模块

试下来最简单的就是 micromamba 了

不嫌重的话,开发环境按项目配置 devcontainer ,配合 vscode 也能实现挺不错的工作区。

我 miniconda 设了 4 个环境就 24G 了,只要装机器学习、深度学习的东西,空间小不了本想找共享 package 的方案,发现需要学习很多知识,反正空间也够,就懒得去研究了

我用 miniconda

rtx 做版本管理,poetry 依赖管理 github.com/jdx/rtx

linux:pyenvwindows:pyenv-win

目前用 miniconda 。

miniconda yyds

only conda

我特想知道为什么 pip 不能像 rubygems 一样在全局安装同一个包的不同版本?虚拟环境可以有,但是不要把包拷来拷去的好不好

conda

无法安装的同一个包的不同版本,不过可以每次切项目覆盖。

写几个基本需求,看看有没有人能给出方案。我以前的调查结论是没一个能打的。1. 快速切换不同版本的 Python 解释器,方便升级或降级2. 每个项目一个虚拟环境,互不干扰3. 同一个包的相同版本共享一份全局空间,不要把每个项目都塞爆4. 同一个包的 cpu 和 gpu 版本在不同虚拟环境互不干扰,例如项目 A 装 cpu 版,项目 B 装 gpu 版5. 依赖兼容性检验,如果新装一个包会破坏环境,默认拒绝安装,可以选择强制安装6. lock 文件独立于操作系统,例如在 windows 上生成的锁文件到 linux 上安装后不变7. 支持安装自有索引的包,例如 PyTorch8. 默认锁定兼容版本,而不是 xxx = "*"

实话实说,没有一个好用的!

直接手动:默认安装一个全局 py ,其他 py 安装路径内改 python 执行文件名称就行了,pip 直接在文件夹内执行;或者直接 venv 。

pyenv + pyenv-virtualenv

Poetry

同 pyenv + pyenv-virtualenv , 支持多种 venv 后端(具体是哪做的我也不是很清楚), venv, virtualenv, conda 都支持也能 用 python-build 安装 和管理 standalone 的 python就能实现各种环境都在一起管理了大部分机遇 几个 python3.x base ,派生一堆 venvai 的场景就 用 anaconda/miniconda 作为 base, conda 作为 venv 后端 管理具体的 ai venv

pyenv + pyenv-virtualenv然后配置好终端模拟器和代码编辑器/IDE 对于 pyenv 虚拟环境的支持

conda create -n your_env_name 就是一个空环境啊,里面什么也没有,怎么会大呢?

rye

miniconda 倒是没啥体积的问题,只是 conda 每次启动得单独加载虚拟环境,另外连接第三方软件也不容易,比如 sublimetext 这种,所以感觉还是不好用。我感觉逻辑上应该是有默认层,或者替换启动命令这种逻辑的要好用一些,比如不做切换时固定在某个版本

python 版本管理:asdf asdf-vm.com/虚拟环境:python venv包管理:pdm pdm-project.org/

conda 还不够用那就没了,OP 的需求是不是想一个 python ,多个不同的包依赖?减少同一个版本的包在多个环境里的多次安装?没有这样的环境,conda 的包管理加使用已经很厉害了。说实话我搞机器学习一个 conda 环境最多也就几个 G ,你要是说占用太大,大概率意思是 conda 的存储空间占用太多,这是因为下载下来的包都缓存起来在本地了,你多个环境下载的所有包的 pre-built 文件或者 wheel 都集中存储起来,这样设计的目的是以便下次创建新环境时免去下载的过程。miniconda 和 anaconda 的区别就是 base 环境几乎没东西,给自定义环境的用户最大的轻便度。所以建议是用 miniconda ,然后嫌弃占用大的话多了解 conda 安装存储的原理,对缓存包没需求的话勤清理 cache ,这种情况想复用环境可以用 clone 的方法来创建新环境,最大程度减少存储空间占用。

用没有广大社区支撑的第三方库管理工具,只会在若干个月后因为某个包的版本依赖问题焦头烂额

brew 安装 python ,虚拟环境就自带或者 virtualenv ,包管理就 pip ,为什么你们要这么复杂?如果对 python 环境有较高要求就 miniconda 就行了啊。

thonny 整个环境可以复制粘贴带走

conda 新环境只安装 python 的话只有 100mb 不到的大小,何来很大?

建议看这篇文章 alpopkes.com/posts/python/packaging_tools/基本对比了市面上的大部分工具 不过我还是推荐 rye (因为我发现 openai 的官方 python sdk 也是用这个来做的来源是这里 www.hesudu.com/t/993078#reply1

pdm > rye

poetry

miniconda > 其他

#12请教一下 nix 的国内镜像源怎么配置?

我为了省事起见,走代理🤣,不过我之前看的清华或者中科大的源 wiki 里都写了怎么替换,你可以看一下,不过我的理解如果用清华的源装的 nix 的话 pkgs 默认源应该就已经是清华了

miniconda 是好用的

现在用 virtualenv 但是有一个问题复用库的时候特别麻烦。特别是机器学习的库又大。。很大的问题是第三方库的复用不能随心所欲。。导致 10 个项目有 10 个虚拟环境同时又有 10 个相同的库。还好现在硬盘便宜了

啥外部工具都不用,直接用电脑上已安装的具体版本 python 可执行程序 + 官方的 -m venv

pyenv+virtualenv