Python:__ init__.py存在时的ImportError

时间:2014-09-07 07:21:11

标签: python flask

我有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='')

我做错了什么?

4 个答案:

答案 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.pyrun.py

位于同一文件夹中

答案 3 :(得分:0)

尝试将'C:/ mycp / application1'添加到环境变量PYTHONPATH