ape*_*dge 28 python python-packaging
嘿所有 - 我用Python中的相对导入拉出我的头发.我已经阅读了30次文档和SO和其他论坛上的大量帖子 - 似乎仍然没有用.
我的目录结构目前看起来像这样
src/
__init__.py
main.py
components/
__init__.py
expander.py
language_id.py
utilities/
__init__.py
functions.py
Run Code Online (Sandbox Code Playgroud)
我希望expandder.py和language_id.py可以访问函数模块.我运行python main.py,它可以从components.expander import*和components.language_id import*访问模块.
但是,在expandder和language_id中的代码访问函数模块:
from ..utilities.functions import *
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ValueError: Attempted relative import beyond toplevel package
Run Code Online (Sandbox Code Playgroud)
我已经过了很多次,它似乎遵循文档.任何人都对这里出了什么问题有任何想法?
ape*_*dge 21
没关系,我解决了它:
src/
main.py
mod/
__init__.py
components/
__init__.py
expander.py
language_id.py
utilities/
__init__.py
functions.py
Run Code Online (Sandbox Code Playgroud)
main.py然后将子包称为:
from mod.components.expander import *
from mod.utilities.functions import *
Run Code Online (Sandbox Code Playgroud)
expandder.py和language_id.py可以访问functions.py:
from ..utilities.functions import *
Run Code Online (Sandbox Code Playgroud)
但有趣的是,我在componentsder.py使用的components目录中有一个文本文件.但是,在运行时,即使文件位于同一目录中,也无法找到该文件.我将文本文件移动到与main.py相同的目录,并且它工作正常.似乎违反直觉.
| 归档时间: |
|
| 查看次数: |
17948 次 |
| 最近记录: |