为什么所有 Python 个包突然都不见了?

Why are all Python packages suddenly gone?

今天我想在我的 OSX 笔记本电脑上 运行 一个(自己编写的)Python 脚本,但是突然之间,所有导入都返回了一个 ImportError.该脚本在大约一个月前 运行 还不错,与此同时我没有对 Python 进行任何更改。此外,我确定我当时没有使用 virtualenv。

所以我又开始重新安装所有软件包(甚至 pip 也需要重新安装)。我还需要 OpenCV,为此我 运行 brew install opencv3,但这给了我:

Warning: homebrew/science/opencv3 3.2.0 is already installed

尽管我仍然无法在 Python 中导入它:

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2

我当然可以卸载并重新安装 OpenCV,但这真的让我感到奇怪;这怎么会发生?什么可以清除所有 Python 个包?

欢迎所有提示!

编辑

好的,我刚刚发现在我使用 brew 安装的 Python 之前,但是 python 命令以某种方式 link 返回 /usr/bin/python /usr/local/Cellar/python/2.7.13_1/bin/python2 个,其中所有软件包仍然正确安装。 所以要linkpython回到我运行brew unlink python && brew link python的brew版本,但是which python还是指/usr/bin/python

哪位高手可以指导我重新使用 brew Python?

编辑2

我刚刚检查了this list of suggestions到linkpython到brew版本,但似乎没有任何效果。让我告诉你我做了什么:

$ echo $PATH
/usr/local/opt/opencv3/bin:/opt/local/bin:/opt/local/sbin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/bin:/Users/hielke/Library/Android/sdk:/Users/hielke/Library/Android/sdk/tools:/Users/hielke/Library/Android/sdk/platform-tools:/usr/local/mysql/bin:/Users/hielke/.composer/vendor/bin
# which shows `/usr/local/bin` before `/usr/bin`

$ brew link --overwrite python
Warning: Already linked: /usr/local/Cellar/python/2.7.13_1
To relink: brew unlink python && brew link python
$ which python
/usr/bin/python  # <= STILL RUNNING THE SYSTEM PYTHON
$ brew unlink python && brew link python
Unlinking /usr/local/Cellar/python/2.7.13_1... 26 symlinks removed
Linking /usr/local/Cellar/python/2.7.13_1... 26 symlinks created
$ which python
/usr/bin/python  # <= STILL RUNNING THE SYSTEM PYTHON

$ cat /etc/paths
/usr/local/bin
/usr/bin  # THIS SEEMS TO BE CORRECT
/bin
/usr/sbin
/sbin

然后我重新启动了终端,但是 which python 仍然给我 /usr/bin/python

然后我重新启动了整个 OS,但令人沮丧的是 which python 仍然给我 /usr/bin/python

谁能帮我摆脱这个 brew 的烂摊子?!

好吧,经过一番折腾,我发现文件夹/usr/local/Cellar/python/2.7.13_1/bin/并没有包含名为python的符号链接,只有python2python2.7

所以最后我通过在 /usr/local/Cellar/python/2.7.13_1/bin/ 中创建一个新的符号链接解决了这个问题,如下所示:

ln -s ../Frameworks/Python.framework/Versions/2.7/bin/python python

之后我运行

brew unlink python && brew link python

解决了我所有的问题。

感谢您的关注和不断的启发!

ps。虽然这是解决我的麻烦的方法,但我仍然不确定这是怎么发生的。如果有人能赐教,那当然还是非常欢迎!