为什么当我在旁边打开 python 文件时,它说找不到该模块?

问题描述 投票:0回答:2

所以,我有一个名为“多个动画”的 python 文件和一个名为“Ball”的

your text
另一个文件。我想将我的 python 文件 Ball 导入到我的多个动画文件中。但这就是我的终端窗口显示的内容:

Traceback (most recent call last):
  File "C:\Users\shipr\PycharmProjects\pythonProject\Vihaan's 
python\Multiple Animations.py", line 2, in <module>
    from Ball import *
ModuleNotFoundError: No module named 'Ball'

这是我在多个动画文件中编写的内容:

from Ball import *
from tkinter import *
import time

window = Tk()

WIDTH = 500
HEIGHT = 500

CANVAS = Canvas(window)
CANVAS.pack()

volleyball = Ball(CANVAS, 0, 0, 100, 1, 1, 'white')

while True:
    volleyball.move()
    window.update()
    time.sleep(0.01)

window.mainloop()

这就是我在 Ball 文件中写的内容:

class Ball:

    def __init__(self, CANVAS, x, y, diameter, xvelocity, yvelocity, color):
        self.CANVAS = CANVAS
        self.image = CANVAS.create_oval(x, y, diameter, diameter, fill=color)
        self.xvelocity = xvelocity
        self.yvelocity = yvelocity

    def move(self):
        coordinates = self.CANVAS.coords(self.image)
        print(coordinates)

我检查了是否有任何命名冲突,因为有时它可以解决问题,但我没有看到任何冲突。我改变了一些东西的名称,但它仍然不起作用。我只喜欢 Pycharm 社区版本(因为我不喜欢为数字产品付费)。

python canvas import pycharm modulenotfounderror
2个回答
0
投票

首先,我认为你需要确保多个动画和球都在同一目录中,因为Python首先搜索同一目录。如果它们不在同一目录中,您可以移动球,使其与多个动画位于同一目录中。如果 Ball 位于子目录中,则导入行可以写为

From .Ball import *
,如 .意味着Python将在Multiple Animations目录中搜索Ball文件。


0
投票

我的尝试:

Ball
文件:

def print_ball():
    
    print('ball')

我的

test_import

import imp


ball_imp = imp.load_source('Ball' ,'Ball')


ball_imp.print_ball()

两个文件位于同一文件夹中

屏幕上的输出运行

test_import
python test_import
:

ball

参见:导入不带.py扩展名的python模块imp.load_source方法的第一个参数有什么作用?

© www.soinside.com 2019 - 2024. All rights reserved.