OSX Mavericks中的Python冲突安装

1 投票
2 回答
664 浏览
提问于 2025-04-18 11:23

我现在遇到了一些麻烦,希望能得到一些指导,不然我的笔记本电脑可能会遭殃。

我已经用我的Macbook好几年了,一直没问题。但当我在工作中拿到一台新的iMac时,发现大家都推荐用homebrew来安装新的Python(特别是在Mavericks系统上)。

我的笔记本电脑之前用的原版Python也没问题。但我决定试试新的homebrew方式(顺便说一下,现在是Mavericks系统)。

首先,我清理了Mavericks系统,因为有其他冲突,然后重新安装了一个干净的系统。接着让nginx、php-fpm、mysql等都能正常工作。

现在是Python的部分。

我可以用pip来安装包。但是当我尝试

workon myproject

时,出现了:

/usr/bin/python: No module named virtualenvwrapper /usr/bin/python: No module named virtualenvwrapper

不过它还是切换到了那个虚拟环境,但不是我项目所在的目录!

当我运行 where python 时,得到了几个结果:

/usr/local/bin/python /usr/bin/python /usr/local/bin/python

我试着调整我的路径,但总是出现其他错误,似乎我的两个Python安装之间有很大的冲突。有没有简单的解决办法,还是我需要彻底清除homebrew,从头再来一次?或者干脆放弃homebrew,使用OSX自带的?

为了更清楚,我当前的$PATH是: /usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/go/bin:/Users/me/Development/Android/sdk/tools:/Users/me/Development/Android/sdk/platform-tools

2 个回答

0

试着把你想用的版本放在你的 PATH 变量的前面。比如说,如果你想使用 /usr/local/bin/python,你可以在命令行中通过 export PATH=/usr/local/bin/python:$PATH 来修改你的 PATH。想了解更多信息,可以查看这里:http://www.cyberciti.biz/faq/appleosx-bash-unix-change-set-path-environment-variable/

1

我的解决方案有点特别,但我来分享一下:

在我的 .zshrc 文件中,我的设置是这样的:

ZSH=$HOME/.oh-my-zsh
ZSH_THEME="steeef"
plugins=(osx virtualenv virtualenvwrapper python github)
source $ZSH/oh-my-zsh.sh
# various aliases
export PATH=/usr/local/bin:/usr/local/sbin:$PATH

问题出在 Oh My ZSH 插件 virtualenvwrapper 上,它在默认的 Python 路径下查找,因为我在 .zshrc 文件中设置自定义路径的部分还没有写好。

所以,解决办法就是把 PATH 的设置放在插件之前,像这样:

ZSH_THEME="steeef"
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
plugins=(osx virtualenv virtualenvwrapper python github)
source $ZSH/oh-my-zsh.sh
# various aliases

现在 ZSH 插件可以找到正确的 Python 安装位置,也能找到正确的 Python 包路径了。

撰写回答