![]() | 1 GlobalNPC 2023-12-04 11:03:08 +08:00 比较大是指什么? 有没有指定 python=3.xx 不指定的话 可能把 base 装的都带进去 |
![]() | 2 usVexMownCzar 2023-12-04 11:11:58 +08:00 visual studio |
![]() | 3 zhangzEric 2023-12-04 13:08:23 +08:00 via iPhone Poetry ? |
4 han1988 2023-12-04 13:12:36 +08:00 miniconda |
![]() | 5 suuuch 2023-12-04 13:45:50 +08:00 我比较 old , 随便弄弄就 miniconda 。(大部分晴空下懒得弄都是这 不嫌弃麻烦就用 miniconda 就官网下载编译安装。 然后包管理的话,virtualenv ,就这个了,使用也方便,多敲几行。其它的没怎么用过。 |
![]() | 6 BBCCBB 2023-12-04 13:54:32 +08:00 基本没有比 conda/miniconda 好用稳定的了. 我用 miniconda |
7 0xsui 2023-12-04 13:54:36 +08:00 |
8 Alias4ck 2023-12-04 13:56:48 +08:00 |
9 0xsui 2023-12-04 13:56:58 +08:00 |
![]() | 10 yy77 2023-12-04 13:58:41 +08:00 ![]() 简单的项目推荐用 python -m venv 就可以了。 |
11 dayeye2006199 2023-12-04 13:58:45 +08:00 Pip |
![]() | 12 XiaoyehuaDev 2023-12-04 13:59:54 +08:00 https://nixos.org/ nix 命令行工具,可以对不同的项目指定不同的开发环境,互不干扰,与系统默认也不干扰 |
![]() | 13 ShadowPower 2023-12-04 14:02:51 +08:00 pipenv 缺点是会下载源码编译,需要自己安装编译所需的依赖 |
![]() | 14 ShadowPower 2023-12-04 14:03:39 +08:00 pyenv + pipenv |
![]() | 15 chhtdd 2023-12-04 14:06:55 +08:00 我用 docker |
16 chronsea 2023-12-04 14:07:43 +08:00 不是专门写 Python 的用 miniconda ,相对熟悉的用 pyenv+poetry, pyenv 管理 python 版本和虚拟环境,poetry 管理包 |
![]() | 17 BearCookie 2023-12-04 14:08:09 +08:00 penv |
![]() | 18 laqow 2023-12-04 14:10:48 +08:00 micromamba |
![]() | 19 encro 2023-12-04 14:14:25 +08:00 pyenv, pdm, miniconda |
![]() | 20 SenLief 2023-12-04 15:02:27 +08:00 via iPhone 简单的小项目我一直我们 Python venv 模块 |
![]() | 21 noqwerty 2023-12-04 15:05:34 +08:00 via iPhone 试下来最简单的就是 micromamba 了 |
![]() | 22 anubu 2023-12-04 15:16:00 +08:00 不嫌重的话,开发环境按项目配置 devcontainer ,配合 vscode 也能实现挺不错的工作区。 |
23 NoOneNoBody 2023-12-04 15:52:59 +08:00 我 miniconda 设了 4 个环境就 24G 了,只要装机器学习、深度学习的东西,空间小不了 本想找共享 package 的方案,发现需要学习很多知识,反正空间也够,就懒得去研究了 |
24 raycool 2023-12-04 15:54:23 +08:00 我用 miniconda |
25 pljhonglu 2023-12-04 16:13:26 +08:00 |
26 forQ 2023-12-04 16:21:54 +08:00 linux:pyenv windows:pyenv-win |
![]() | 27 dif 2023-12-04 16:38:46 +08:00 目前用 miniconda 。 |
![]() | 28 founddev 2023-12-04 17:14:43 +08:00 miniconda yyds |
![]() | 29 HOMO114514 2023-12-04 17:17:25 +08:00 only conda |
![]() | 30 lululau 2023-12-04 17:17:47 +08:00 我特想知道为什么 pip 不能像 rubygems 一样在全局安装同一个包的不同版本?虚拟环境可以有,但是不要把包拷来拷去的好不好 |
31 kiddingU 2023-12-04 17:29:13 +08:00 conda |
![]() | 33 Nugine0 2023-12-04 17:40:31 +08:00 写几个基本需求,看看有没有人能给出方案。我以前的调查结论是没一个能打的。 1. 快速切换不同版本的 Python 解释器,方便升级或降级 2. 每个项目一个虚拟环境,互不干扰 3. 同一个包的相同版本共享一份全局空间,不要把每个项目都塞爆 4. 同一个包的 cpu 和 gpu 版本在不同虚拟环境互不干扰,例如项目 A 装 cpu 版,项目 B 装 gpu 版 5. 依赖兼容性检验,如果新装一个包会破坏环境,默认拒绝安装,可以选择强制安装 6. lock 文件独立于操作系统,例如在 windows 上生成的锁文件到 linux 上安装后不变 7. 支持安装自有索引的包,例如 PyTorch 8. 默认锁定兼容版本,而不是 xxx = "*" |
![]() | 34 coolair 2023-12-04 18:11:14 +08:00 via Android 实话实说,没有一个好用的! |
![]() | 35 vialon17 2023-12-04 18:29:30 +08:00 直接手动: 默认安装一个全局 py , 其他 py 安装路径内改 python 执行文件名称就行了,pip 直接在文件夹内执行; 或者直接 venv 。 |
36 fakepoet 2023-12-04 18:38:14 +08:00 pyenv + pyenv-virtualenv |
![]() | 37 917405917 2023-12-04 20:06:00 +08:00 via iPhone Poetry |
38 thevita 2023-12-04 20:19:46 +08:00 @fakepoet 同 pyenv + pyenv-virtualenv , 支持多种 venv 后端(具体是哪做的我也不是很清楚), venv, virtualenv, conda 都支持 也能 用 python-build 安装 和管理 standalone 的 python 就能实现各种环境都在一起管理了 大部分机遇 几个 python3.x base ,派生一堆 venv ai 的场景就 用 anaconda/miniconda 作为 base, conda 作为 venv 后端 管理具体的 ai venv |
![]() | 39 IgniteWhite 2023-12-04 21:05:59 +08:00 pyenv + pyenv-virtualenv 然后配置好终端模拟器和代码编辑器/IDE 对于 pyenv 虚拟环境的支持 |
40 hertzry 2023-12-04 22:16:38 +08:00 conda create -n your_env_name 就是一个空环境啊,里面什么也没有,怎么会大呢? |
41 Akkuman 2023-12-04 23:29:36 +08:00 via Android rye |
![]() | 42 LeeReamond 2023-12-05 00:09:47 +08:00 miniconda 倒是没啥体积的问题,只是 conda 每次启动得单独加载虚拟环境,另外连接第三方软件也不容易,比如 sublimetext 这种,所以感觉还是不好用。我感觉逻辑上应该是有默认层,或者替换启动命令这种逻辑的要好用一些,比如不做切换时固定在某个版本 |
![]() | 43 kuanat 2023-12-05 00:12:51 +08:00 ![]() |
44 Yuhyeong 2023-12-05 00:18:18 +08:00 conda 还不够用那就没了,OP 的需求是不是想一个 python ,多个不同的包依赖?减少同一个版本的包在多个环境里的多次安装? 没有这样的环境,conda 的包管理加使用已经很厉害了。说实话我搞机器学习一个 conda 环境最多也就几个 G ,你要是说占用太大,大概率意思是 conda 的存储空间占用太多,这是因为下载下来的包都缓存起来在本地了,你多个环境下载的所有包的 pre-built 文件或者 wheel 都集中存储起来,这样设计的目的是以便下次创建新环境时免去下载的过程。 miniconda 和 anaconda 的区别就是 base 环境几乎没东西,给自定义环境的用户最大的轻便度。所以建议是用 miniconda ,然后嫌弃占用大的话多了解 conda 安装存储的原理,对缓存包没需求的话勤清理 cache ,这种情况想复用环境可以用 clone 的方法来创建新环境,最大程度减少存储空间占用。 |
45 Yuhyeong 2023-12-05 00:19:36 +08:00 用没有广大社区支撑的第三方库管理工具,只会在若干个月后因为某个包的版本依赖问题焦头烂额 |
![]() | 46 jiayouzl 2023-12-05 00:20:55 +08:00 via iPhone brew 安装 python ,虚拟环境就自带或者 virtualenv ,包管理就 pip ,为什么你们要这么复杂?如果对 python 环境有较高要求就 miniconda 就行了啊。 |
47 lxxiil 2023-12-05 00:22:21 +08:00 via iPhone thonny 整个环境可以复制粘贴带走 |
![]() | 48 009694 2023-12-05 00:34:03 +08:00 via iPhone conda 新环境只安装 python 的话只有 100mb 不到的大小,何来很大? |
49 Alias4ck 2023-12-05 01:24:40 +08:00 建议看这篇文章 https://alpopkes.com/posts/python/packaging_tools/ 基本对比了市面上的大部分工具 不过我还是推荐 rye (因为我发现 openai 的官方 python sdk 也是用这个来做的 来源是这里 t/993078#reply1 |
![]() | 50 bianhui 2023-12-05 08:42:39 +08:00 pdm > rye |
![]() | 51 knightdf 2023-12-05 08:52:02 +08:00 poetry |
![]() | 52 clemente 2023-12-05 10:08:03 +08:00 miniconda > 其他 |
![]() | 53 okampfer 2023-12-05 10:40:19 +08:00 @xipuxiaoyehua #12 请教一下 nix 的国内镜像源怎么配置? |
![]() | 54 XiaoyehuaDev 2023-12-05 10:45:25 +08:00 via iPhone @okampfer 我为了省事起见,走代理,不过我之前看的清华或者中科大的源 wiki 里都写了怎么替换,你可以看一下,不过我的理解如果用清华的源装的 nix 的话 pkgs 默认源应该就已经是清华了 |
![]() | 55 sworld233 2023-12-05 11:08:35 +08:00 miniconda 是好用的 |
![]() | 56 llsquaer 2023-12-05 11:22:29 +08:00 现在用 virtualenv 但是有一个问题复用库的时候特别麻烦。特别是机器学习的库又大。。 很大的问题是第三方库的复用不能随心所欲。。导致 10 个项目有 10 个虚拟环境同时又有 10 个相同的库。 还好现在硬盘便宜了 |
57 listenerri 2023-12-05 14:04:49 +08:00 ![]() 啥外部工具都不用,直接用电脑上已安装的具体版本 python 可执行程序 + 官方的 -m venv |
58 0x19921213 2023-12-05 14:42:23 +08:00 pyenv+virtualenv |
59 c5QzzesMys8FudxI 2023-12-06 09:41:25 +08:00 pyenv 和 miniconda 哪个好用点? 一直在用 pyenv |
![]() | 60 amlee 2023-12-06 12:41:27 +08:00 用 docker 的 dev container |
![]() | 61 LaureatePoet 2023-12-06 12:51:33 +08:00 poetry |
![]() | 62 HiddenNPC 2023-12-06 13:48:09 +08:00 专业和非专业都推荐:miniconda |
![]() | 63 frostming 2023-12-07 17:26:42 +08:00 请大家不要再问「有没有好用的 Python 版本、虚拟环境和包管理的工具」这种问题了。这里出现一百个答案,题主还知道要用什么吗?而且题目明明拉黑 conda 了,下面还一堆 conda 的。 要提问,请先明确使用场景。你是做 ML 开发多,还是 web 开发多,还是爬虫? 没有哪一个包管理器是银弹。你闭着眼睛推荐一个,他一用不符合场景,回头还得骂一声垃圾。 |
64 ifsclimbing 2023-12-09 20:37:34 +08:00 asdf + pdm |
65 ZX576 2023-12-13 18:26:46 +08:00 @Nugine0 docker + poetry - 预先多做一些不同 python 版本的 base image ,甚至一些基础共有包也打进去,解决 1/2/3 - 使用 poetry 做版本管理,解决 4/5/6/8 总的来说指定的项目中可能包含多个不同的 docker file ,一份 pyproject.toml 和 poetry.lock 文件 不太懂 7 的意思。 |
![]() | 67 akaHenry 2024-03-15 20:52:37 +08:00 推荐 rye 吧. 也是前 flask 作者出品. https://github.com/astral-sh/rye 1. 目前 应该是唯一良好支持 workspace 模式的(类似 rust cargo), 比较方便管理 monorepo. 2. 功能已经覆盖 poetry + pdm + pyenv. (这样可以完全替代 pyenv + poetry) 3. 集成 uv(替代 pip), 安装包速度更快. 成熟可靠方案: pyenv + poetry + 全局 venv 模式. 1. 过去长期使用 pyenv + poetry. 比较偏好 pyenv 的全局管理的 venv. 不过 rye 的 local venv + workspace, 就很棒, 完美规避 venv 管理的麻烦. (没有 workspace, local venv 很难管理) 不推荐: pdm 1. pdm. 短暂使用, 就弃用. 有不少 bug. 和 pyenv 协调性很差, 终端自动激活 venv, 始终有 bug. 2. 功能完备度低于 poetry, 目前更是不如 rye. (题外: 就算不用 rye, 我也不会用 pdm, 那么多人吹, 我的体验就很差) |