从较低级别文件导入***文件[重复]
Posted
技术标签:
【中文标题】从较低级别文件导入***文件[重复]【英文标题】:Importing top level file from lower level file [duplicate] 【发布时间】:2018-04-28 18:39:47 【问题描述】:对此我不清楚:__init__.py
将当前文件夹描述为一个模块,不是吗?
因此,如果我的***项目文件夹my_project
包含文件config.py
(my_project/config.py
),那么my_project/drivers/sales/customer.py
中的文件应该能够通过以下方式导入config.py
模块:
import my_project.config
(错误至:ModuleNotFoundError: No module named 'my_project'
)
或者,from .. import config
(错误至:ValueError: attempted relative import beyond top-level package
)-顺便说一句,尝试使用三个点 (...
) 时出现相同的错误。
或者,只是import config
(错误:ModuleNotFoundError: No module named 'config'
)
使用以下终端命令:
(env) localhost:/Users/myname/Sites/my_project
$ python drivers/sales/customer.py
我怎样才能完成这个导入?
版本:
$ python
Python 3.6.2 (default, Jul 17 2017, 16:44:45)
【问题讨论】:
最近也让我大吃一惊,我认为在你的情况下:从 .. 导入配置,因为你的文件是 2 级深,所以 2 个点 @Kris 同样的错误。见上文 好的,最后一次尝试:您是否尝试在销售文件夹中添加一个空的 init.py,然后尝试使用 from .. import config?对不起,如果这感觉像是在猜测(公元前。它是!),但我仍然无法将我的头包裹在 python 相关导入中...... 层次结构中的所有文件夹都需要有init.py文件 @Kris 我想知道怎么做,但我知道为什么你的 init 是粗体的 :) 【参考方案1】:一种方法是将项目的路径公开如下:
import sys
sys.path.append('path/to/your/project') # /Users/nabin/Desktop in my case
#I have "my_project" in Desktop i.e /Users/nabin/Desktop/my_project
那么你可以做以下事情
from my_project import config
因此,当合并时,您需要以下内容:
import sys
sys.path.append('path/to/your/project')
from my_project import config
【讨论】:
以上是关于从较低级别文件导入***文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章