从父目录导入模块

时间:2018-12-20 06:06:56

标签: python-3.x python-3.4

看看我的文件结构:

main/
    main.py
    __init__.py

    mysql/
        read.py
        __init__.py

    conf/
        mysql.py
        loc.py
        __init__.py

conf/mysql.py包含mysql服务器的信息(端口,主机名等)

read.py用于通过连接到conf/mysql.py中指定的服务器从MySQL数据库获取和读取值。

我想要实现的是让read.py导入conf/mysql.py,所以我尝试了:

from conf import mysql
import main.conf.mysql

这两个都不起作用。它给了我ImportError: No Module Name 'main'ImportError: No Module Named 'conf',导入conf/mysql.py仅在main.py中起作用

我知道可以附加到sys.path,但是出于某些原因,我不想这样做。

是否有解决此问题的解决方案?在此先感谢您,并为这个复杂的问题感到抱歉。

1 个答案:

答案 0 :(得分:1)

由于main目录是项目的根目录,因此绝对导入中不应包含main

from conf import mysql

或使用relative import,您可以执行以下操作:

from ..conf import mysql