Как исправить ошибку: нет модуля с именем «pygame»

Я установил модуль pygame, и он отлично работает, когда я пытаюсь запустить его из PyCharm или Sublime Text, но когда я пытаюсь запустить его из консоли или IDLE, он говорит: Ошибка: нет модуля с именем «pygame». Я должен упомянуть, что мой python 3.8 устанавливается не в папку по умолчанию, а в другой раздел в пользовательской папке. У меня также были проблемы с PATH и python, когда я впервые установил python.


person Sip_    schedule 13.07.2020    source источник
comment
В вашей системе может быть несколько установок Python. Когда вы пытались установить пакет «pygame», я полагаю, что он был установлен в версии Python, которая запускается в среде PyCharm или Sublime. Вы можете проверить, какая версия Python работает, выполнив команду: python --version. Я бы посоветовал вам поделиться с нами более подробной информацией для устранения неполадок.   -  person Abhishek Arora    schedule 14.07.2020
comment
В то время у меня не было другой версии, но я исправил ее сейчас. Спасибо за ответ   -  person Sip_    schedule 19.07.2020


Ответы (7)


Вы импортировали pygame в начале скрипта? Это может быть проблемой.

person UdayanS    schedule 13.07.2020
comment
Я сделал. Он отлично работает, когда я запускаю его из Sublime. - person Sip_; 14.07.2020

покажите нам свой код и мы постараемся вам помочь

также, если вы действительно импортировали pygame в свой код, не забудьте добавить

import sys 
print sys.path

до первых трех строк и до импорта pygame :)

import sys
print sys.path
import pygame

я взял это из здесь.

person b0ss    schedule 13.07.2020

Вот мой основной код. Не знаю, как правильно отформатировать...

``` import sys print(sys.path) import pygame import klase import funkcije import os import neat

WIN_W = 800 WIN_H = 400

gen = -1

def main(genomes, config):

global gen
gen += 1
nets = []
ge = []

floor = klase.Floor(0)
dinos = []
cactis = []

for _, g in genomes:
    net = neat.nn.FeedForwardNetwork.create(g, config)
    nets.append(net)
    dinos.append(klase.Dino(-55))
    g.fitness = 0
    ge.append(g)

clock = pygame.time.Clock()
score = 0
run = True

win = pygame.display.set_mode((WIN_W, WIN_H))

while run:
    clock.tick(30)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
            pygame.quit()
            quit()

    cacti_ind = 0
    if len(dinos) > 0:
        if len(cactis) > 1 and dinos[0].x > cactis[0].x + cactis[0].img.get_width():
            cacti_ind = 1
    else:
        run = False
        break

    if len(cactis) == 0:
        funkcije.spawn_cacti(cactis)

    for x, dino in enumerate(dinos):
        ge[x].fitness += 0.01
        if dino.y < dino.init_y + dino.dy:
            ge[x].fitness -= 0.4
        try:
            next_cacti = cactis[cacti_ind + 1]
        except IndexError:
            next_cacti = cactis[cacti_ind]
        output = nets[x].activate((dino.x, dino.y, abs(dino.x - cactis[cacti_ind].x), abs(dino.x - (cactis[cacti_ind].x + cactis[cacti_ind].img.get_width())), abs(dino.x - next_cacti.x)))
        if output[0] > 0.5:
            dino.jump()

    add_score = False
    for cacti in cactis:
        for x, dino in enumerate(dinos):
            if cacti.collide(dino):
                ge[x].fitness -= 1
                dinos.pop(x)
                nets.pop(x)
                ge.pop(x)

            if not add_score and cacti.x + cacti.img.get_width() < dino.x:
                add_score = True

    rem = []
    for cacti in cactis:
        if cacti.x + cacti.img.get_width() < 0:
            rem.append(cacti)

    for r in rem:
        cactis.remove(r)

    if add_score:
        score += 1
        for g in ge:
            g.fitness += 5
        add_score = False

    funkcije.move(floor, dinos, cactis)
    funkcije.draw_window(win, floor, dinos, cactis, score, gen)

def run(config_path): config = аккуратный.config.Config(чистый.DefaultGenome, аккуратный.DefaultReproduction, аккуратный.DefaultSpeciesSet, аккуратный.DefaultStagnation, config_path)

p = neat.Population(config)

p.add_reporter(neat.StdOutReporter(True))
stats = neat.StatisticsReporter()
p.add_reporter(stats)

winner = p.run(main, 50)

if name == 'main': local_dir = os.path.dirname(file) config_path = os.path.join(local_dir, ' config-feedforward.txt') запустить (config_path)

</code>
person Sip_    schedule 14.07.2020

Итак, в основном я только что добавил все возможные папки, связанные с python, в PYTHONPATH, и теперь он принимает pygame (он не дает никаких ошибок, когда я импортирую pygame из консоли), но теперь он вообще не запускает программы, и это тоже не хочет открывать IDLE. Я все еще могу нормально запустить его из Sublime

person Sip_    schedule 14.07.2020

Если вы хотите использовать его в PyCharm, вам нужно перейти в настройки, затем в Project:name проекта, затем в Project Interpreter, затем в знак плюса, найти и установить Pygame и/или другие модули. Конечно, сначала вам нужно установить интерпретатор, если он еще не установлен.

person kaktus_car    schedule 14.07.2020
comment
Извините, не правильно прочитал. У вас установлено более одной версии Python? - person kaktus_car; 14.07.2020

Вы должны установить модуль в папку Scripts вашей последней версии pythom. Я имею в виду:

  1. Откройте командную строку.

  2. Найдите папку, в которой установлен ваш python. Для этого введите:

    cd /d [Путь к установке Python]

Например:

cd /d E:\Python\Scripts

Примечание. Вы должны добавить \Scripts после ввода местоположения Python. 3) Тип:

pip install pygame
  1. После этого вы можете открыть файл бездействия, расположенный внутри папки python.

  2. Решено.

Пожалуйста, проголосуйте, если вы найдете это полезным.

person Neil Lunavat    schedule 16.07.2020
comment
Я уже исправил это, но в следующий раз, когда это произойдет, я попробую. О голосовании: у меня до сих пор нет на это разрешений. я не очень активный - person Sip_; 19.07.2020

Я получил эту ошибку один раз, но все, что мне нужно было сделать, это установить ее с моей консоли.

person IT_Guys    schedule 25.07.2020