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

2024-10-01 02:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我想在我的OSX笔记本电脑上运行一个(自写的)Python脚本,但是突然之间,所有的导入都返回了一个ImportError。一个月前我还没改过Python的脚本。此外,我确信我当时没有使用虚拟机。在

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

Warning: homebrew/science/opencv3 3.2.0 is already installed

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

^{pr2}$

当然,我可以卸载并重新安装OpenCV,但这确实让我想知道,这是怎么回事?什么可能会删除所有Python包?在

欢迎所有提示!在

编辑

好吧,我刚刚发现在我使用brew安装的Python之前,python命令不知怎么地链接回了/usr/bin/python,而不是{},其中所有的软件包仍然正确安装。 所以要将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。在

谁能帮我摆脱这场混乱的啤酒?!在


Tags: whichbin链接usrlocallibrarylinkusers
1条回答
网友
1楼 · 发布于 2024-10-01 02:30:11

好吧,经过一番折腾,我发现文件夹/usr/local/Cellar/python/2.7.13_1/bin/没有包含一个名为python的符号链接,只有python2和{}。在

最后,我在/usr/local/Cellar/python/2.7.13_1/bin/中创建了一个新的符号链接,如下所示:

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

之后我就跑了

^{pr2}$

解决了我所有的问题。在

感谢您的关注和不断的灵感!在

虽然这是解决我的问题的办法,但我仍然不确定这是怎么发生的。如果有人能启发我,那当然还是很受欢迎的!在

相关问题 更多 >