今天我想在我的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 unlink python && brew link python
的brew版本,但which python
仍然引用/usr/bin/python
哪位才华横溢的灵魂可以引导我回到使用brew Python?
EDIT2
我刚检查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
。
谁能让我摆脱这种酿造混乱?!
答案 0 :(得分:1)
好的,经过大量的讨论,我发现文件夹/usr/local/Cellar/python/2.7.13_1/bin/
没有包含名为python
的符号链接,仅包含python2
和python2.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。虽然这是解决我的麻烦的办法,但我仍然不确定这是怎么回事。如果有人能够启发我当然仍然非常欢迎!