Zem*_*ian 22 python flask python-3.x
我正在根据不同的导入规则在教程之后使用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
Run Code Online (Sandbox Code Playgroud)
在app.py中,我使用以下代码从config.py导入一个函数:
import config as Config
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
ImportError: No module named 'config'
Run Code Online (Sandbox Code Playgroud)
我不明白是什么问题,是同一个文件夹中的两个文件.提前致谢
小智 25
你有没有尝试过
import app.config as Config
Run Code Online (Sandbox Code Playgroud)
它为我做了伎俩.
小智 13
要从同一文件夹导入,您可以执行以下操作:
from .config import function_or_class_in_config_file
Run Code Online (Sandbox Code Playgroud)
或者按照您的要求导入带有别名的完整配置:
from ..app import config as Config
Run Code Online (Sandbox Code Playgroud)
# imports all functions
import config
# you invoke it this way
config.my_function()
Run Code Online (Sandbox Code Playgroud)
或者
# import specific function
from config import my_function
# you invoke it this way
my_function()
Run Code Online (Sandbox Code Playgroud)
如果 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53415 次 |
| 最近记录: |