我有C:/mycp/applicationl
目录中的文件:run.py,其中包含以下代码:
from che import wserver
from applicationl import app
目录:C:/mycp/applicationl
还包含__init__.py
文件。
当我运行python run.py
时,它会给我以下错误:
File "run.py", line 8, in <module>
from application1 import app
ImportError: No module named 'application1'
但是__init__.py
存在,此应用程序中存在应用程序:
app = Flask(__name__, static_url_path='')
我做错了什么?
答案 0 :(得分:1)
您不应将文件作为脚本运行,而希望将该目录视为包。
要将applicationl
视为包,必须将父目录添加到Python sys.path
模块查找路径中。但是当您运行脚本时,会添加目录本身。
将C:/mycp
目录手动添加到sys.path
并不是一个好主意。只需在此处导入其他Python代码作为顶级模块,或创建C:/mycp/applicationl
的子目录,并将其用作包。
如果不创建其他软件包,您的run.py
代码应更改为:
from che import wserver
from app import app
并将__init__.py
重命名为app.py
。
或者,创建一个新的子目录;它甚至可以再次命名为applicationl
,并将__init__
移到该子目录中。
答案 1 :(得分:0)
如果您在C:/mycp/applicationl
内,如果application1
中没有sys.path
,则无法从{{1}}导入。
答案 2 :(得分:0)
尝试from . import app
,因为app.py
与run.py
答案 3 :(得分:0)
尝试将'C:/ mycp / application1'添加到环境变量PYTHONPATH