python - 为什么所有 Python 包突然消失了?

标签 python opencv pip package easy-install

今天我想在我的 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命令以某种方式链接回 /usr/bin/python而不是/usr/local/Cellar/python/2.7.13_1/bin/python2其中所有软件包仍然正确安装。 所以链接python回到我运行的brew版本brew unlink python && brew link python ,但是which python仍然指/usr/bin/python

哪位聪明人可以指导我重新使用brew Python?

编辑2

我刚刚查看了 this list of suggestions链接 python再次到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 .

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

谁能帮我摆脱困境?!

最佳答案

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

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

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

之后我就跑了

brew unlink python && brew link python

解决了我所有的问题。

感谢您的关注和持续的灵感!

ps。虽然这解决了我的麻烦,但我仍然不确定这是怎么发生的。如果有人能够启发我,那当然仍然非常受欢迎!

关于python - 为什么所有 Python 包突然消失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45257009/

相关文章:

opencv - 'W'上的字符分割失败

dll - OpenCV highgui110.dll 链接错误

python - pip install 返回无效语法

python - 如何 reshape 3D numpy 数组?

python - 用于在没有 Google Driver UI 的情况下将大文件上传到 Google Drive 的 POST 消息

代表 1/10 的 Python

python - 无法从 anaconda 找到 python 模块,使用 pip 安装的模块

python - 如何将数组上采样到任意大小?

c++ - QT creator添加opencv库报错: linker command failed with exit code 1

python - 找不到已安装的 pip 包