После обновления Python 2.7 до Python 3 Sublime не распознает ранее импортированные модули - PullRequest
0 голосов
/ 06 ноября 2018

Системная информация: Sublime Text 3.1.1 и Mac 10.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)`

То же самое относится и к другим рассматриваемым модулям. Я пытался сделать много вещей, чтобы найти решение. Одна возможная вещь, которая часто возникает, это предложение убедиться, что возвышенное использует обновленную версию pygame / pygal / etc. но я не знаю как это сделать.

Кроме того, я думаю, может быть, pygame / pygal / и т.д. загружаются в какую-то папку, содержащую все мои программы на python 2.7, и не содержат моих вещей на Python 3. Если это правильно, как мне добавить добавленные в мою папку Python 3 уже загруженные программы или что-то еще?

1 Ответ

0 голосов
/ 06 ноября 2018

Вы должны (повторно) установить пакеты, которые вы установили один раз на Python 2.x до Python 3.x . Вы не можете использовать их для другой версии. Все пакеты (в основном все) имеют версию для конкретной версии Python. Это самый простой способ получить надежную среду Python. На самом деле иногда есть версия 2.x и наоборот, которую может обновить опытный программист, но это происходит относительно редко, и, как вы сказали, это не так.

Итак, все, что вам нужно сделать, - это установить актуальную версию пакетов Python 3.x для работы.

Кроме того, между двумя основными версиями есть инструменты миграции, но в этом случае я думаю, что это не нужно.

Например, здесь вы можете найти Pygame версию для Python 3.x.

В первом случае, когда вы пытались установить Pygame, он был в среде Python 2.x, потому что вы получаете сообщение о том, что требования уже выполнены, поскольку, как вы писали, вы уже установили его.

Напротив, сообщение об ошибке появилось в среде Python 3.x. Таким образом, вы должны знать, где вы устанавливаете необходимый пакет. Контрольная точка для этого - запустить 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 , оставляя версию Python вашей системы по умолчанию такой, как есть.

...