0

我安装了 pygame 模块,当我尝试从 PyCharm 或 Sublime Text 运行它时它工作得很好,但是当我尝试从控制台或 IDLE 运行它时,它说:“错误:没有名为 'pygame' 的模块”。我应该提到我的 python 3.8 没有安装在它的默认位置,而是安装在自定义文件夹中的其他分区上。当我第一次安装 python 时,我也遇到了 PATH 和 python 的问题。

4

8 回答 8

1

您必须将模块安装在最新 pythom 版本位置的 Scripts 文件夹中。我的意思是:

  1. 打开命令提示符。

  2. 找到安装 python 的文件夹。为此,请键入:

    cd /d [python 安装路径]

例如:

cd /d E:\Python\Scripts

注意:您必须在输入 python 位置后添加 \Scripts。3) 类型:

pip install pygame
  1. 运行后,您可以打开位于 python 文件夹中的空闲文件

  2. 解决了。

如果您觉得这有帮助,请投票。

于 2020-07-16T18:36:08.590 回答
0

你在脚本的开头做了 import pygame 吗?这可能是问题所在。

于 2020-07-13T22:42:17.263 回答
0

我曾经遇到过这个错误,但我需要做的就是从我的控制台安装它。

于 2020-07-25T18:08:03.307 回答
0

如果你想在 PyCharm 中使用它,你需要进入设置,然后进入项目:“项目名称”,然后进入项目解释器,然后在“加号”上找到并安装Pygame和/或其他模块。当然首先你需要设置解释器,如果它还没有设置。

于 2020-07-14T13:48:58.317 回答
0

向我们展示您的代码,我们会尽力帮助您

另外,如果您确实将 pygame 导入到您的代码中,请记住添加

import sys 
print sys.path

到前三行和 import pygame 之前:)

import sys
print sys.path
import pygame

我从这里拿了这个。

于 2020-07-13T22:51:23.097 回答
0

这是我的主要代码。我知道如何格式化它......

``` 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 = neat.config.Config(neat.DefaultGenome, neat.DefaultReproduction, neat.DefaultSpeciesSet, neat.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') run(config_path)

</code>
于 2020-07-14T11:55:56.950 回答
0

好的,所以基本上我刚刚将与 python 关联的每个可能的文件夹添加到 PYTHONPATH 并且现在它确实接受 pygame(当我从控制台导入 pygame 时它不会给出任何错误),但现在它根本不会运行程序而且它也不想打开IDLE。我仍然可以从 Sublime 正常运行它

于 2020-07-14T12:30:27.353 回答
0

我在 VS Code 中使用 Python 时遇到了同样的问题。原来我的系统上安装了多个版本的 Python,即使我有"pip installed"pygame,它也没有与 VS Code 中活动的 python 版本“对齐”

要解决此问题,在 VS Code 中,通过单击左下角并从下拉菜单中选择来选择正确的解释器路径。希望这可以帮助 在此处输入图像描述

于 2022-01-09T23:10:51.427 回答