将 Python 2.7 更新为 Python 3 后,Sublime 将无法识别以前导入的模块
After updating Python 2.7 to Python 3, Sublime won't recognize previously imported modules
系统信息:Sublime Text 3.1.1 和 Mac10.14 Mojave
我对编程很陌生,只是跟着书学习Python。我刚刚从 python 2.7 更新到 python 3。现在,Sublime 将无法识别我之前导入和使用的模块,即 pygame 和 pygal。当我尝试导入它们时,出现以下错误:
import 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/etc。下载到包含我所有 python 2.7 程序的某个文件夹中,而不是我的 Python 3 程序。如果这是正确的,我将如何将已经下载的程序添加到我的 Python 3 目录或其他目录中?
您必须(重新)安装您安装过一次的软件包到 Python 2.x 到 Python 3.x。您不能将它们用于其他版本。
所有软件包(大部分)都具有特定 Python 版本的版本。这是获得可靠 Python 环境的最清晰方法。
实际上有时有 2.x 版本,反之亦然,经验丰富的程序员可以更新 him/herself,但这种需求相对较少,正如你所说,情况并非如此当然。
因此,您所要做的就是安装实际软件包的 Python 3.x 版本。
另外两个主要版本之间有迁移工具,但在这种情况下我认为没有必要。
例如,您可以在此处找到 Python 3.x 的 Pygame 版本。
在第一种情况下,当您尝试安装 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 版本是。
系统信息:Sublime Text 3.1.1 和 Mac10.14 Mojave
我对编程很陌生,只是跟着书学习Python。我刚刚从 python 2.7 更新到 python 3。现在,Sublime 将无法识别我之前导入和使用的模块,即 pygame 和 pygal。当我尝试导入它们时,出现以下错误:
import 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/etc。下载到包含我所有 python 2.7 程序的某个文件夹中,而不是我的 Python 3 程序。如果这是正确的,我将如何将已经下载的程序添加到我的 Python 3 目录或其他目录中?
您必须(重新)安装您安装过一次的软件包到 Python 2.x 到 Python 3.x。您不能将它们用于其他版本。 所有软件包(大部分)都具有特定 Python 版本的版本。这是获得可靠 Python 环境的最清晰方法。 实际上有时有 2.x 版本,反之亦然,经验丰富的程序员可以更新 him/herself,但这种需求相对较少,正如你所说,情况并非如此当然。
因此,您所要做的就是安装实际软件包的 Python 3.x 版本。
另外两个主要版本之间有迁移工具,但在这种情况下我认为没有必要。
例如,您可以在此处找到 Python 3.x 的 Pygame 版本。
在第一种情况下,当您尝试安装 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 版本是。