从同一文件夹中的文件导入功能
问题描述:
我正在构建一个基于不同导入规则的教程之后的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'
我不明白是什么问题,是同一文件夹中的两个文件。 在此先感谢
答
# 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
答
要从你可以做同样的文件夹导入:
from .config import function_or_class_in_config_file
或导入完整配置wi你的问题别名:
from ..app import config as Config
尝试与“从。导入配置为配置“ – Giordano
您需要这样做'从应用程序导入配置作为配置' – Jaco