为啥不导入 Python [重复]
Posted
技术标签:
【中文标题】为啥不导入 Python [重复]【英文标题】:Why not import Python [duplicate]为什么不导入 Python [重复] 【发布时间】:2018-11-18 12:41:00 【问题描述】:有这个app结构,其中myapp
是根目录,“app”和“package1”两个并行包:
myapp
app
__init__.py
app.py
package1
__init__.py
my_file.py
__init__.py
*注意:最后一个__init__.py
位于根目录“myapp”
现在,在 app.py 中,如果我尝试 import my_file.py
from ..package1 import my_file as my_variable
然后我得到这个错误:
ImportError: attempted relative import with no known parent package
我在这里研究并找到了一个可能的解决方案:
How to resolve ImportError: attempted relative import with no known parent package
我想应用“解决方案 1”,但不明白我应该将 main.py 放在 哪里 以及它的 应该放在哪里>内部代码,或者相反,它可能是一个空文件,例如__init__.py
【问题讨论】:
【参考方案1】:app.py
中应该有一个run
函数:
def run():
# .... You code that should run as app
app.py
中应该没有自动运行代码
main.py
应与myapp
位于同一文件夹中:
myapp
app
__init__.py
app.py
package1
__init__.py
my_file.py
__init__.py
main.py
现在main.py
应该包含如下内容:
from myapp.app import app
app.run()
你可以运行它python main.py
您也可以将__main__.py
文件放在myapp
中:
myapp
app
__init__.py
app.py
package1
__init__.py
my_file.py
__init__.py
__main__.py
__main__.py
应该包含如下内容:
from .app import app
app.run()
你不能像这样运行它python -m myapp
【讨论】:
以上是关于为啥不导入 Python [重复]的主要内容,如果未能解决你的问题,请参考以下文章