从另一个目录导入Python模块

3
我有一个Python程序,其项目结构如下所示:
ProjectName
     |
     |----ProjectMain.py
     |
     |----__init__.py
     |
     |----Common
            |
            |----Dictionaries
            |         |
            |         |----Dicts.py
            |         |
            |         |----__init__.py
            |
            |----Core.py
            |
            |----LogoCreator.py
            |
            |----__init__.py

除了每个空的__init__.py文件外,每个文件的内容如下:

LogoCreator.py


该文件为Logo创建器。
def random_logo():
#    do stuff


Core.py

from LogoCreator import random_logo
import Dictionaries.Dicts as Dicts

#do stuff


Dicts.py

i_am_a_dictionary = {}


ProjectMain.py

from Common.Core import *
import Common.Dictionaries.Dicts as Dicts

#do stuff

当我运行ProjectMain.py时,我遇到了以下错误:
Traceback (most recent call last):
  File "ProjectName\ProjectMain.py", line 1, in <module>
    from Common.Core import *
  File "ProjectName\Common\Core.py", line 1, in <module>
    from LogoCreator import random_logo
ModuleNotFoundError: No module named 'LogoCreator'

这是我第一次使用软件包,所以任何帮助都将不胜感激。


1
在你的 Core.py 文件中,将 from LogoCreator import random_logo 替换为 from Common.LogoCreator import random_logo。将 import Dictionaries.Dicts as Dicts 替换为 import Common.Dictionaries.Dicts as Dicts。最后,尝试使用命令 python -m ProjectName.ProjectMain 运行程序。 - Feishi
1个回答

0
如果你想使用 random_logo 方法,导入 LogoCreator 后必须使用点表示法。
from Common import LogoCreator
def create (self):
  x = self.random_logo()
  #code that generates a random logo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接