Python/pip坏的解释器:没有这样的文件或目录。

4

我似乎丢失了在我的 Mac 上安装的所有 Python 包。

我输入了以下命令以从 Python 3.6 升级到 Python 3.7:

brew upgrade python

现在当我在终端中输入 ipython3 时,它会显示:

-bash: /usr/local/bin/ipython3: /usr/local/opt/python/bin/python3.6: bad interpreter: No such file or directory

但是在进行brew升级之前,我能够使用ipython3。此外,我认为我已经失去了所有的Python包,因为当我在Python3中导入模块时,它会显示:

ModuleNotFoundError: No module named *examplepythonpackage*

我之前安装的Python包都丢失了,我需要逐个重新安装吗?

我也无法在Bash终端中运行ipython3命令。

-bash: /usr/local/bin/ipython3: /usr/local/opt/python/bin/python3.6: bad interpreter: No such file or directory

供参考:

$ which python
    /usr/bin/python
$ which python3
    /usr/local/bin/python3
$ pip --version
    pip 18.1 from /Library/Python/2.7/site-packages/pip-18.1-py2.7.egg/pip (python 2.7)
$ pip3 --version
    pip 18.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

你从Python 3.6升级到Python 3.7(根据pip3输出)。为了让ipython3再次正常工作,你需要重新安装它,因为它指向的是Python 3.6解释器。你需要在Python 3.7中重新安装所有以前在Python 3.6下使用的模块,才能让它们正常工作 - 默认情况下,这些模块不会自动更新。 - Anya Shenanigans
可能是重复的问题:pip3: bad interpreter: No such file or directory - floss
2个回答

1

ipython与其底层使用的Python解释器和库之间的链接在安装时建立(而不是每次运行时动态建立),因此,如果您删除并重新安装ipython,我认为您的问题将会得到解决,即:

brew rm ipython
brew install ipython

如果您想了解这个,可以像这样查看您的ipython脚本:
more $(which ipython)

但是即使我使用 $Python3(可以正常工作),似乎当我执行 import _package_ 时,我之前安装的包好像都不见了。它们是永久消失了吗? :( - piccolo
所以只是确认一下 - 我之前安装的Python包都永久丢失了,我必须逐个重新安装它们吗? - piccolo
我对Python并不是很精通,因此我不想说错话,给你带来不必要的麻烦。也许你可以将这个问题加入到你的提问中,在假定任何关于继承包的事情之前,希望一位真正的Python专家路过并解决它。 - Mark Setchell
如果你运行 brew switch python,它可能会让你回到之前的版本,并保留你之前安装的包 - 只要你没有执行 brew cleanup... - Mark Setchell
1
很难帮助处理“我无法运行python”的问题。请在您的问题下点击“编辑”,说明您是如何尝试运行ipython的,发生了什么情况,并展示type ipython的输出。谢谢。 - Mark Setchell
显示剩余2条评论

-2

你的软件包并没有消失,只是在新的Python中不可见。你可以尝试欺骗Python 3.7,在python3.6目录中查找软件包,但这样做会导致许多软件包无法正常工作,特别是扩展软件包,因为3.6和3.7不兼容ABI。

基本上,这样的升级需要您重新安装所有软件包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接