机器上的 Python 解释器装的太多

2024-05-28 11:40:59 +08:00
 yuhu96
我的 Mac 上装了很多 Python 环境,除了 Mac 本身自带的之外,还有 Anaconda 、MiniConda 、Python 官网安装的,以及一大堆历史遗留创建的虚拟环境,也不记得是 venv 还是 pipenv 弄得了。因为以前入门没概念,上手就是 pip install ,结果装到哪里自己都不知道。

实际工作中切换或者管理感觉很头疼。

想知道有没有什么工具可以做一下自动化的管理或者清理。
5053 次点击
所在节点    Python
29 条回复
7Wate
2024-05-28 11:50:43 +08:00
Pyenv ── https://github.com/pyenv/pyenv

pyenv 是一个用于管理 Python 版本的工具。它允许你在同一台机器上安装和切换多个 Python 版本,避免了不同项目之间由于 Python 版本不同而产生的冲突。通过 pyenv ,你可以轻松地安装特定的 Python 版本,并为不同的项目设置不同的 Python 版本。
laike9m
2024-05-28 11:59:05 +08:00
可以看一下这篇文章,推荐了我认为比较合理的 setup

https://laike9m.com/blog/best-python-development-setup-for-2022-and-beyond,144/
lozzow
2024-05-28 12:16:29 +08:00
用 rye,每个工程一个自己的环境,就像 node 一样
w568w
2024-05-28 12:21:36 +08:00
一项目一环境的话 pdm 就挺好的,用起来很像 yarn 或者 npm 。
TimePPT
2024-05-28 12:33:43 +08:00
我现在用 pyenv+poetry ,丝滑
fbichijing
2024-05-28 12:35:03 +08:00
虚拟环境名起和项目名相关不就行了?项目与虚拟环境共存亡...
FYFX
2024-05-28 12:53:08 +08:00
清理的话,你可以整理一下环境变量(顺便找到当前 python/pip 安装路径),不过根据你装的方式/用的 shell 啥的可能在多个.rc 文件改了 PATH ,管理工具和方法我看别人都说的差不多了
crackidz
2024-05-28 13:00:21 +08:00
实际上只需要 miniconda 就足够用了吧...
skyrim61
2024-05-28 13:11:33 +08:00
如果使用 pycharm, 用 pycharm 上面的
louisxxx
2024-05-28 14:24:23 +08:00
最优解还是装个 orbstack 启动容器,在容器里安全各种环境,而不是直接在 mac 系统里装。
你直接装 mac 系统里清理,迁移,起停都非常难控制
looveh
2024-05-28 17:41:49 +08:00
我已经不知道有哪些环境了,随便用。碰到问题再说
tangtang369
2024-05-28 17:52:28 +08:00
用 miniconda,建议建立个测试环境,统一安装在这里,没有必要一个项目一个环境,只有那种大型项目单独建立环境,不然你会发现每搞个项目都是安装一堆重复的包,还占用环境,比如你跑 github 上的项目,就建立个 github 环境,以后 github 上拉的项目就用这个环境,除非 python 版本不匹配再新建立,这种项目你跑过一次你会发现基本不会再运行。
keakon
2024-05-28 17:56:17 +08:00
每个项目都运行 python -m venv .,然后执行 bin/pip install ...
iX8NEGGn
2024-05-28 18:02:54 +08:00
我想问下,2024 年了,python 各种工具创建的虚拟环境可以移动了吗,之前的移动后一些库会用不了,还得重新装。
ysc3839
2024-05-28 18:17:59 +08:00
我个人选择用 Homebrew 装 Python 。不喜欢 pyenv ,因为要本地编译。
ysc3839
2024-05-28 18:20:17 +08:00
@iX8NEGGn venv 不可移动似乎主要是因为脚本里面写了绝对路径。其实可以考虑手动把 whl 解压到一个目录内,然后把这个目录添加到 sys.path 里面。我在公司的项目里试过这么干,配合 CentOS 内置的 Python 似乎没什么问题。
ihciah
2024-05-28 18:21:51 +08:00
推荐统一用 conda
009694
2024-05-28 18:45:40 +08:00
只用 miniconda 不就可以了。。
zeusho871
2024-05-28 18:46:47 +08:00
poetry ?
ysw
2024-05-28 18:56:31 +08:00
Direnv + nix
如果不怕上手难度的话,我用起来挺好的
现在有一个 decency 就是这个封装的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1044631

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX