系统信息:Sublime Text 3.1.1 和 Mac 10.14 Mojave
我对编程非常陌生,只是按照一本书来学习Python。我刚刚从 python 2.7 更新到 python 3。现在,Sublime 将无法识别我之前导入和使用的模块,即 pygame 和 pygal。当我尝试导入它们时,出现以下错误:
导入pygame
Traceback (most recent call last):
File "/Users/MyNameHere/Desktop/python_work/data_visualization/python_repos.py", line 1, in <module>
import pygame
ModuleNotFoundError: No module named 'pygame'
(其中 python_repos.py 是我正在使用的当前程序)。
我知道我已经安装了这些模块,因为当我尝试安装 pygame 时,例如,在终端中使用 pip install pygame
,我得到:
`Requirement already satisfied: pygame in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (1.9.4)`
其他相关模块也是如此。我尝试做很多事情来寻找解决方案。经常出现的一件事是建议确保 sublime 使用 pygame/pygal/etc 的更新版本。但我不知道该怎么做。
此外,我想也许是 pygame/pygal/等等。下载到包含我所有 python 2.7 程序的某个文件夹中,而不是与我的 Python 3 程序一起。如果这是正确的,我将如何将已下载的程序添加到我的 Python 3 目录或其他目录中?
最佳答案
您必须将曾经安装过的软件包从Python 2.x安装到Python 3.x。您不能将它们用于其他版本。 所有包(大部分)都有特定 Python 版本的版本。这是获得可靠的 Python 环境的最清晰的方法。 实际上有时会有 2.x 版本,反之亦然,经验丰富的程序员可以自己更新,但这种需求相对较少,正如您所说,情况并非如此。
因此,您所要做的就是安装实际软件包的 Python 3.x 版本即可使用。
另外两个主要版本之间还有迁移工具,但在这种情况下我认为没有必要。
例如在这里您可以找到 Pygame Python 3.x 版本。
在第一种情况下,当您尝试安装 Pygame 时,它是在 Python 2.x 环境中,这是因为您收到消息,要求已经满足,因为正如您所写,您已经安装了它。
相反,错误消息发生在Python 3.x环境中。
因此,您必须知道在哪里安装所需的软件包。
为此,需要在命令 shell 中运行 python --version
并读取您收到的消息,例如:
Python 3.6.5 :: Anaconda, Inc
尽管在某些安装了某些系统上,您会发现 python
将启动 Python 3.x,而在其他系统上将启动 Python 2.x,而 python3
将启动 Python 3 。X。 pip/pip3
也会发生类似的情况。如果您有 pip3
命令或 simlink,它将处理 Python 3.x 等的包(请参阅下面的注释)。
然后您就会知道您正在尝试安装给定包的环境。
注意:
使用另一个 Python 版本的最佳方法,也是最优选的方法,然后使用 Python virtual environment 来使用系统的默认版本。保留系统默认的 Python 版本不变。
关于python - 将Python 2.7更新到Python 3后,Sublime将无法识别之前导入的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53179361/