2017-05-09 89 views
4

我正在构建一个基于不同导入规则的教程之后的Python 3.5 Flask应用程序。通过查找类似的问题,我设法解决了一个基于从嵌套文件夹导入的ImportError,通过将文件夹添加到路径中,但我一直无法从同一文件夹中的脚本导入功能(已经在路径中)。该文件夹结构是这样的:从同一文件夹中的文件导入功能

DoubleDibz 
├── app 
│ ├── __init__.py 
│ ├── api 
│ │ ├── __init__.py 
│ │ └── helloworld.py 
│ ├── app.py 
│ ├── common 
│ │ ├── __init__.py 
│ │ └── constants.py 
│ ├── config.py 
│ ├── extensions.py 
│ ├── static 
│ └── templates 
└── run.py 

在app.py我通过使用此代码导入从config.py功能:

import config as Config 

,但我得到这个错误:

ImportError: No module named 'config' 

我不明白是什么问题,是同一文件夹中的两个文件。 在此先感谢

+0

尝试与“从。导入配置为配置“ – Giordano

+0

您需要这样做'从应用程序导入配置作为配置' – Jaco

回答

5

你试过

import app.config as Config 

它奏效了我。

+1

或'从app导入配置作为配置'根据您的编码风格 – Jaco

1
# imports all functions  
import config 
# you invoke it this way 
config.my_function() 

# import specific function 
from config import my_function 
# you invoke it this way 
my_function() 

如果app.py从可以做到这一点同一个文件夹不调用:

# csfp - current_script_folder_path 
csfp = os.path.abspath(os.path.dirname(__file__)) 
if csfp not in sys.path: 
    sys.path.insert(0, csfp) 
# import it and invoke it by one of the ways described above 
2

要从你可以做同样的文件夹导入:

from .config import function_or_class_in_config_file 

或导入完整配置wi你的问题别名:

from ..app import config as Config