1
infun 2023-12-04 11:03:08 +08:00
比较大是指什么? 有没有指定 python=3.xx
不指定的话 可能把 base 装的都带进去 |
2
chiaf 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 3
简单的项目推荐用 python -m venv 就可以了。
|
11
dayeye2006199 2023-12-04 13:58:45 +08:00
Pip
|
12
xipuxiaoyehua 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
neochen13 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 也是用这个来做的 来源是这里 https://www.v2ex.com/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
xipuxiaoyehua 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 1
啥外部工具都不用,直接用电脑上已安装的具体版本 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 282 天前
推荐 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, 那么多人吹, 我的体验就很差) |