为什么不导入Python
为什么不导入Python
有一个应用程序结构,其中myapp
是根目录,\"app\"和\"package1\"是两个平行的包:\n
myapp app __init__.py app.py package1 __init__.py my_file.py __init__.py
\n*注意:最后一个__init__.py
位于根目录\"myapp\"中。\n现在,在app.py中,如果我尝试导入 my_file.py:\n
from ..package1 import my_file as my_variable
\n然后我会得到这个错误:\n
ImportError: attempted relative import with no known parent package
\n我已经进行了研究,并在这里找到了一个可能的解决方案:\n如何解决ImportError: attempted relative import with no known parent package\n我想应用\"Solution 1\",但不明确main.py应该放在哪里以及它的内部代码是什么,或者是否相反,它可以是一个空文件,就像__init__.py
一样。
为什么不导入Python?
在这个问题中,出现的原因是没有在app.py文件中包含一个run函数,并且在app.py文件中有自动运行的代码。解决方法是在app.py文件中添加一个run函数,并且在main.py文件中导入app模块并调用run函数。
具体的解决方法如下:
首先,在app.py文件中添加一个run函数,代码如下:
def run(): # .... You code that should run as app
然后,确保在app.py文件中没有自动运行的代码。
接下来,将main.py文件放在与myapp文件夹同一个目录下,并在main.py文件中导入并调用app模块的run函数,代码如下:
from myapp.app import app app.run()
这样,可以通过运行命令python main.py来执行程序。
另外,你也可以在myapp文件夹中添加一个__main__.py文件,代码如下:
from .app import app app.run()
然后,可以通过运行命令python -m myapp来执行程序。