系统内置了一个 python2
安装 xcode 的时候内置了 Command Line Tools 其中有 python3.7
后来安装 brew 要求必须再单独安装个 Command Line Tools 其中又包含了 python3.7
通过 brew 安装了一个软件 依赖并安装了 python3.8
想问问 这些 python 是都创建软连接了?会不会有冲突?
1
Livid MOD |
2
NoobPhper 2020-06-24 10:11:11 +08:00
brew link --force
|
3
volvo007 2020-06-24 11:41:46 +08:00
建议别这么干…… 装个 pip 或者 conda,用相关的功能 (比如 conda create -n <pyEnvName> python=3.8 )来管理和隔离不同的 py 环境
|
4
VDimos 2020-06-24 11:46:16 +08:00 via Android
别动默认的 python,用 miniconda 管理 python
|
5
justin2018 2020-06-24 11:46:28 +08:00
用 conda 或者 Google Colab
|
6
Mutoo 2020-06-24 11:47:07 +08:00
之前研究过这个问题,macos 系统里其实有两个 python 2
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /System 目录为 root 管理员专用路径,该 pythong 用于系统维护之类的场景,平时不用。 /Library 目录为所有用户共享,但仅有管理员能修改(安装、删除)其中的内容,需要 sudo 权限才能安装 package 此外不同工具自带的 python 主要是考虑到自己的依赖。 你需要的解决方案是虚环境 venv/pyenv |
7
ttimasdf 2020-06-24 12:00:42 +08:00 via Android
日常使用 pyenv 可定制性比较高,
|
8
podel 2020-06-24 12:15:21 +08:00
除了 venv/pyenv
另外还推荐一个 miniconda sh 直接安装 安装好了 直接用。想切什么版本 切什么版本。 |
9
Xusually 2020-06-24 12:22:54 +08:00
macOS 的日常,自带的这些自己别动。
python 用 conda 之类的管理 brew 安的其他软件在 brew 自己的目录里,link 不 link 最也可以控制的 系统自动启动的服务和你的冲突的话,把系统的关掉,用你自己的 说到底,还是环境的事儿,看看环境变量就知道 |
10
laike9m 2020-06-24 13:23:11 +08:00
直接 pyenv 一把梭即可
|
11
LennieChoi 2020-06-24 13:56:02 +08:00
conda 简直太香,同样 mac,当时看一文章教怎么改系统的 python,差点误入歧途
|
12
BBCCBB 2020-06-24 14:11:54 +08:00
我本来 vim 用的好好的, 后来出现了你说的这种多个 python 环境, 编译 vim 后一直报错.. 我就换 neovim 了.. 蛋疼.
|
13
bytesfold 2020-06-24 14:45:24 +08:00
conda
|
14
nightwitch 2020-06-24 15:17:28 +08:00
这个也不算是 macos 上的问题洛,在 Windows,Linux 上装不同版本的 Python 环境也会碰到一样的问题。
conda/pyenv 解决问题 |
15
itskingname 2020-06-24 15:48:10 +08:00
我写了一篇公众号特别来说明这个问题: https://mp.weixin.qq.com/s/nOUXxAClAZf2Zb4aS3ADww
|
16
Nick66 2020-06-24 16:17:43 +08:00
我也遇到这个问题
|
17
TOUJOURSER 2020-06-24 16:18:44 +08:00
感觉还是 pyenv 比较自在
|
18
gam2046 2020-06-24 16:49:37 +08:00
这个和系统关系不大了,python 自己的锅,放弃了向下兼容。这一点,不管怎么喷 Java,向下兼容做的是没得黑。
|
19
keepeye 2020-06-24 17:11:50 +08:00
依赖中自带的 python 你又用不到,不影响。
自己 python 环境通过 pyenv + virtualenv 管理吧 |
20
cdlnls 2020-06-24 18:34:30 +08:00 via Android
主要看环境变量 PATH,可以把 brew 的环境变量目录提前,让 brew 下的 python 排在默认的前面,这样在执行的时候就不会指向默认的 python 。
同理,你可以通过修改管理变量来控制运行指定版本的 python 。 |
21
Kobayashi 2020-06-24 19:07:28 +08:00 via Android
这算哪门子暴击,我还以为你强迫症犯了把系统 Python 卸载了。
|
22
seakingii 2020-06-24 20:52:46 +08:00
python 。。真是乱。。光是环境管理就好几套。。
|
23
indev 2020-06-25 00:37:51 +08:00
我也用的 miniconda
|
24
liangch 2020-06-25 08:09:18 +08:00
说好几套的,谁让你同时用了。自己多学习。
|
25
lululau 2020-06-25 10:04:52 +08:00 via iPhone
|
26
arischow 2020-06-25 10:18:12 +08:00 via iPhone
网上乱七八糟的文章很多,想拿来就用的人也不少,对于不熟悉的人是比较困难的。楼主可以综合上面所说的研究一下。
|
27
jiejiss 2020-06-25 11:45:04 +08:00
$ where python
/Users/me/anaconda3/bin/python /usr/local/bin/python /usr/bin/python 首先你 $PATH 里可能就有多个。不在 $PATH 里的可能更多。每次 where 然后手动指定全路径还不如整 conda 或者 venv |
28
linvaux 2020-06-25 22:14:55 +08:00
conda 解君愁
|