【问题标题】:ModuleNotFoundError: No Module Named '...' [Python]ModuleNotFoundError:没有名为“...”的模块 [Python]
【发布时间】:2019-06-24 16:57:41
【问题描述】:

我之前只用 Python 编写过独立的脚本。现在我正在尝试编写一个可以在两个数据库之间转换和迁移数据的应用程序。但是当我尝试创建不同的模块时,它们无法“找到”彼此。

这就是我的工作区现在的样子。

  Project
     -PQF
         -db
             -__init__.py
             - DataSource.py
             - RecordSet.py
          -main
             -main.py
             - __init__.py
        - __init__.py

据我了解,我需要在每个模块中创建这些“init.py”文件,以使其了解这些是模块,这些当前是空的。

我想要在主文件中做的只是导入不同的模块。

       from PQF.db import DataSource as database
       from PQF.db import RecordSet

       def main():
         print("hello")

但我得到了错误: ModuleNotFoundError: No Module named "PQF"

我做错了什么?感谢您的任何帮助。

【问题讨论】:

  • 您是否将 python 路径设置为您的基本 PQF 文件夹?
  • 不,我没有设置任何python路径,你必须永久添加它吗?

标签: python module


【解决方案1】:

这是包含__init__.py的完整代码

文件 - db/__init__.py

from .DataSource import *
from .RecordSet import * 

文件 - main/__init__.py

from .main import *

文件 - PQF/__init__.py

from .db import *
from .main import *
from db import DataSource as database
from db import RecordSet

def main():
   print("hello")

python3 -m main.main 运行main.py 脚本

【讨论】:

  • 也许这与我的“init.py”文件只是空的事实有关?
  • 我已经更新了答案。我已经在我的机器上测试过了。
【解决方案2】:

您需要做的是将main.py 交出您的其他脚本。

Project
     - PQF
        - db
            - __init__.py
            - DataSource.py
            - RecordSet.py
        - main.py
        - __init__.py

在您的 main.py 中,您现在进行导入

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-20
    • 2021-03-09
    • 2021-06-03
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多