2017-05-09 102 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 
相關問題