对 Python 一直不是很了解,直接 brew install python 可以吗?网上搜索都是说需要安装 pyenv 比较优雅。不是 Python 开发者,只是偶尔需要写一点 python script
请问直接用 brew install python 还是 brew install pyenv ?
感觉 Python 版本问题好麻烦啊,java 的话,直接网上下载一个包,拖进去就能用 IDEA 用了,版本问题根本不存在
![]() | 1 xtinput 2023-01-28 16:18:36 +08:00 和 java 没啥区别,一样多版本同时使用 |
![]() | 2 gowl 2023-01-28 16:30:00 +08:00 PyCharm |
3 seanzxx 2023-01-28 16:34:35 +08:00 ![]() java 的版本问题其实更多,oracle jdk, openjdk, zulu jdk ,然后又有不同的版本,现在半年出一个新版本,每个版本又有新功能。 推荐使用 pyenv 或者 asdf 这种版本管理软件 brew install python 安装的版本总是会安装最新的版本,而且你 pip 安装 library 的话,都和 brew 混在一起,感觉不好。 pyenv / asdf 可以支持安装多个版本,不同的项目 /目录自动激活对应的版本 我喜欢 配合上 pipenv 使用,python 和 library 统一管理 |
![]() | 4 MID OP @seanzxx 感谢回复,其实两年前使用过 pyenv ,但是现在文档都看不下去了,感觉好复杂... 我个人想了一下,py 用的太少了,pip 什么的项目可以在 pycharm 里面弄,也不影响外面的。 |
![]() | 5 jayzau1973 2023-01-28 16:43:46 +08:00 anaconda |
6 Lockeysama 2023-01-28 16:44:07 +08:00 ![]() 搞个 miniconda 最方便吧,隔离 Python 版本,隔离环境。。不影响系统自带版本的 Python |
![]() | 7 4BVL25L90W260T9U &nsp; 2023-01-28 16:44:53 +08:00 miniconda 。pyenv 和 venv 的功能都有了,比较省心。 |
![]() | 8 wu67 2023-01-28 16:45:54 +08:00 我选择 docker, 只要不是特别奇怪的东西, 我现在都优先考虑 docker 搭环境了 |
![]() | 10 wu67 2023-01-28 16:50:48 +08:00 @MID 但是不会遇到奇奇怪怪的问题, 也不会遇到像公司的代码只能跑在特定版本上, 而我想装个最新的环境造轮子. 个人觉得 docker 真的是天生适合多版本共存. |
![]() | 11 dudu2017 2023-01-28 16:51:13 +08:00 ![]() 用 Homebrew 和 pyenv 下载的 Python 运行脚本是都行,搞清楚 Python 版本和虚拟环境是什么就可以。 我的使用习惯: 1 、Homebrew 管理的 Python 版本基本不动他,只用于其他 Homebrew 下载软件的依赖。 2 、开发使用 pyenv 管理 Python 版本,不用的项目使用不用的版本的 Python ,用原生模块 venv 创建不同的虚拟环境进行 Package 管理 |
![]() | 13 GabrielleBellamy 2023-01-28 17:14:18 +08:00 ![]() brew install 的 python 会装在 HomeBrew 自己的路径里,这个路径与系统默认的路径可能有别,因此如果你解释器路径设置的不是这个,那么到时候会调用不到,如楼上所说,最好只用于 HomeBrew 的环境依赖。其他的方法还有很多,无论是直接从官网装 python 还是搭虚拟环境,都得弄清楚路径就行。另一个是注意电脑的芯片架构,一旦路径多,装包又分不同的架构,就需要仔细检查运行环境。 |
![]() | 14 quzard 2023-01-28 17:33:13 +08:00 via iPhone anaconda |
15 FarmerChillax 2023-01-28 17:43:39 +08:00 楼主提到就写写 python script ,其实就没必要上多版本了,直接 python3 装个最新的就完善了。 #3 说的对,java 的版本问题其实更多 |
16 stein42 2023-01-28 18:00:58 +08:00 brew 可以安装指定版本的 python ,例如: brew install [email protected] 项目里面基于指定版本的 python 建一个 venv 就够了。 pyenv 通常需要编译,要先安装好编译器和依赖库。 conda 也是不错的选择。 |
17 ddvswgg 2023-01-28 18:47:49 +08:00 via iPhone Miniconda |
![]() | 18 webcape233 2023-01-28 19:17:33 +08:00 via iPhone brew install 然后 python -m venv |
19 clrss 2023-01-28 19:31:30 +08:00 写脚本用 Xcode.app 或者 CommandLineTools 自带的就行. ``` % which python3 /usr/bin/python3 # 这是个 wrapper, 实际用的是: % xcrun --find python3 /Applications/Xcode.app/Contents/Developer/usr/bin/python3 ``` pip3 install 时记得加个--user |
![]() | 20 Thecosy 2023-01-28 21:10:32 +08:00 我是 anaconda |
![]() | 21 BMPixel 2023-01-28 21:19:38 +08:00 @MID 其实损耗还行,docker 比虚拟机高效多了,性能的话似乎会折个 10-20%?然后你的下载的 python 镜像大约 500M ,同时 docker 后台不管你干什么差不多用 2-4G 内存(在 docker 里设置)。 考虑到我用了三年的 conda 环境现在有 13 个 G ,而且 docker 配合上 vscode 的 devcontainer ,可以让我进入任何语言的项目时立刻得到完整的配置,因此我现在已经把电脑里的各种包全删了 |
![]() | 22 jayeli 2023-01-28 21:23:02 +08:00 ![]() miniconda + venv |
![]() | 23 leverestfish 2023-01-28 21:33:47 +08:00 投 miniconda 一票 |
![]() | 25 Jface 2023-01-28 21:39:55 +08:00 谢谢大家,被安利了 miniconda ,马上去了解了解。 |
![]() | 26 IvanLi127 2023-01-28 21:40:52 +08:00 via Android 我觉得直接上 dev container 是最优雅的了,直接抹平各种环境问题 |
![]() | 27 Jface 2023-01-28 22:47:57 +08:00 @jayeli #22 小白请教一个问题 ,这么使用的话,是不是每个项目都需要单独新建一个环境?那么项目多起来的话,是不是垃圾文件就会很多? |
![]() | 28 FozillaMox 2023-01-28 23:25:26 +08:00 如果只是偶尔写一下 python 的话,macOS 已经预装 python3 了,相信已经满足你的需求。 |
![]() | 29 yescola 2023-01-28 23:30:49 +08:00 via iPhone 跪着 |
30 SuperMild 2023-01-28 23:33:29 +08:00 感觉 miniconda 的隔离逻辑是最清晰的。 |
31 sshang 2023-01-28 23:52:01 +08:00 anaconda |
![]() | 32 yangxin0 2023-01-28 23:53:37 +08:00 conda |
![]() | 33 angkec 2023-01-28 23:59:45 +08:00 brew install python virtualenv venv source vent/bin/activate 就可以了 |
![]() | 34 noqwerty 2023-01-29 00:10:55 +08:00 via iPhone brew install micromamba |
![]() | 35 1014982466 2023-01-29 00:21:18 +08:00 上面说的都好麻烦。没有理由不用 miniconda |
36 lrigi 2023-01-29 00:29:34 +08:00 via iPhone ![]() @Jface 不需要每个项目一个环境,就是普通的 python 代码对于库的小版本号没那么高的要求,这样平时都用一个环境差不多就够了。(个人是这样的,商业生产环境可能需要每个项目一个环境吧 |
37 lanlanye 2023-01-29 01:13:39 +08:00 我觉得你要是本身不熟悉 Python 的话说明不是特别在意版本,那 macOS 原装的就可以直接用了吧…… 直接使用 python3 就行,什么都不用安装 |
38 nuistzhou 2023-01-29 01:25:24 +08:00 via iPhone 因为 Mac os 自带 python ,而且系统依赖这个自带的。所以建议自己玩 python ,就搞个这种虚拟环境的 python 去随便玩,不影响系统自带的这个。 |
39 Laussan 2023-01-29 01:31:53 +08:00 我现在觉得 miniconda 最好 |
40 ByteCat 2023-01-29 03:43:46 +08:00 我用的 mambaforge ,M1 支持得很好,用了两年了 |
![]() | 41 jayeli 2023-01-29 09:01:48 +08:00 ![]() @Jface #27 创建带有不同版本 Python 解释器的 conda 环境就可以了,之后直接用 venv 。 miniconda 装完之后自带一个 Python 解释器( conda 的 base 环境),你可以直接用 `~/miniconda3/bin/python -m venv ./.venv` 创环境。当你对 Python 有其他版本的需求时,可以使用 conda 再创建一个环境,像这样 `conda create -n python36 -c conda-forge python=3.6`,此时就可以和之前一样使用 Python 3.6 的解释器创建 venv 环境,`~/.conda/envs/python36/bin/python -m venv ./.venv`。 microbamba 是用 C++ 实现,只有一个可执行文件,更轻更快,同时兼容 conda 环境。官网说目前还处于早期阶段,不过用下来没什么问题。它的用法和 conda 一样,上手也很快,值得一试。 |
![]() | 42 zhangzEric 2023-01-29 10:49:08 +08:00 via iPhone 不经常用 python 的话,直接 pycharm 让他自动检测安装吧,小白友好 |
![]() | 43 SuperChenCN 2023-01-29 11:21:11 +08:00 miniconda +1 |
44 pinhaoma 2023-01-29 11:52:39 +08:00 |
![]() | 45 brucedone 2023-01-29 12:44:54 +08:00 miniconda ,搞 python 是没办法脱离虚拟环境管理的 |
![]() | 46 sidkang 2023-01-29 13:06:34 +08:00 pyenv 的文档都能觉得烦,我是觉得蛮诧异的,楼上居然都觉得合理么, |
![]() | 48 MID OP 感谢各位的回复,已经用上 miniconda 了,感觉超好用!目前配合 Pycharm ,感觉天衣无缝,感谢大家推荐! @Jface @sidkang @brucedone @howie6879 @SuperChenCN @zhangzEric @jayeli @ByteCat @Laussan @nuistzhou @lanlanye @lrigi @1014982466 @noqwerty @angkec @yangxin0 @sshang @SuperMild @yescola @FozillaMox @Jface @IvanLi127 @jayeli @leverestfish @jayeli @BMPixel @Thecosy @clrss @webcape233 @ddvswgg @stein42 @FarmerChillax @quzard @GabrielleBellamy @dudu2017 @dudu2017 @wu67 @wu67 @ospider @Lockeysama @jayzau1973 @seanzxx @gowl @xtinput |
![]() | 49 Stlin 2023-01-29 16:44:24 +08:00 miniconda 挺好用的 |
50 julyclyde 2023-01-30 09:17:15 +08:00 首先,系统自带 python3 ,不过 pip 的时候你需要--user 其次,你如果选 pyenv (或者 asdf 之类的),那 pyenv 本身用啥来运行呢?其实还是依赖于某个 python 窃以为现在多版本 python 已经没有时候啥意义了。多环境隔离才是硬需求 |
![]() | 51 zhongjiajie 2023-02-09 09:04:45 +08:00 pyenv + |
![]() | 52 zhongjiajie 2023-02-09 09:08:48 +08:00 我目前是 pyenv + pyenv-virtualenvwrapper 组合,基本上能解决多个 python 版本,以及同一个版本下多个项目依赖的问题 pip install pyenv brew install pyenv-virtualenvwrapper # 安装一个新 version 的 python pyenv install python3.11 pyenv global python3.11 pyenv virtualenvwrapper mkvirtualenv new_project |
![]() | 53 sickoo 2023-06-19 22:19:52 +08:00 miniconda 结合 pycharm ,那如何优雅的 install package ,打开终端 -> 激活虚拟环境 -> conda install xxx ? |