【问题标题】:How to import multiple class objects from seperate folders?如何从不同的文件夹导入多个类对象?
【发布时间】:2018-01-21 05:52:15
【问题描述】:

我为我的相关文件构建了一个具有以下目录结构的 python 2.7 应用程序。 cal方法如何位于不同的文件夹位置?

Data-Wrangling-OpenStreetMap-data
 |
 +---- process_data
 |       |
 |       +---- __init__.py
 |       |
 |       +---- data_cleaner.py
 |
 +---- main_code.py
 |
 +---- audit _data
 |       |
 |       +---- __init__.py
 |       |
 |       +---- audit_file.py

我已经成功地通过使用以下方法为从 main_code.py 引用的一个类正确地做到了:

from process_data.data_cleaner import DataCleaner

但是,如果通过使用 import 语句尝试对位于 main_code.py 引用的单独文件夹中的另一个类尝试类似的模式

from audit_data.audit_file import AuditFile

我收到错误:

ImportError: 没有名为 audit_data.audit_file 的模块

关于我可能会忽略什么的任何想法和/或关于我需要发布哪些进一步详细信息以帮助找到我的问题的解决方案的指导?

【问题讨论】:

    标签: python-2.7 python-import python-packaging module-packaging


    【解决方案1】:
    from process_data.data_cleaner import data_cleaner
    

    因为 data_cleaner 是文件名 data_cleaner.py 而第二个 data_cleaner 是其中定义的一个类。

    【讨论】:

    • 感谢您的快速响应,不幸的是,当我这样做时,在我的代码中起作用的一个导入也失败了,即我现在得到 ImportError: cannot import name data_cleaner
    • 抱歉,您所说的实际上是正确的......但是我的班级被命名为DataCleaner;当我使用以下内容时:from process_data.data_cleaner import DataCleaner 它可以工作。 ...但是,当我引用位于单独文件夹中的另一个类时,它的这个类即 from audit_data.audit_file import AuditFile 。失败并返回错误消息:ImportError: No module named audit_data.audit_file
    【解决方案2】:

    我的问题的原因很愚蠢; 包含我正在调用的类的文件夹名为 audit_file 而我在代码中调用的文件夹是 audit_file

    什么没用 from audit_data.audit_file import AuditFile

    什么有效 from audit _data.audit_file import AuditFile

    阅读本文的人请注意文件夹名称中的意外空格

    【讨论】:

      猜你喜欢
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      相关资源
      最近更新 更多