ImportError:无法从“ mypackage”(未知位置)导入名称“ app”

时间:2019-04-12 17:40:07

标签: python

我知道类似的问题很少,但是没有一个帮助我,所以我正在写一个新的问题。这是我的目录结构:

- mypackage
    - __init__.py
- run.py
- requirements.txt

run.py内容:

from mypackage import app

app.run(host='localhost', port=3648)

mypackage / __ init__.py内容:

from flask import Flask

app = Flask(__name__)

这是完整的错误:

C:\...\parser>python run.py
Traceback (most recent call last):
  File "run.py", line 1, in <module>
    from mypackage import app
ImportError: cannot import name 'app' from 'mypackage' (unknown location)

这似乎是一个错误,或者我做错了。.

更新: PYTHONPATH的环境检查: 追溯(最近一次通话):   文件“ run.py”,第6行,在     打印(os.environ ['PYTHONPATH'])    getitem 中的文件“ C:\ Users \ white \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ os.py”,行678     从None提高KeyError(key) KeyError:“ PYTHONPATH”

4 个答案:

答案 0 :(得分:1)

tl; dr:重命名您的软件包

您的包裹是否真正命名为mypackage?我猜不会。 :)

我有同样的错误。就我而言,我为mypackage选择的名称恰好是我不知道的现有Python库的名称。 重命名程序包后,错误消失了。

答案 1 :(得分:0)

我猜您在运行run.py时,当前的工作目录不在该文件所在的位置。因此mypackage不在sys.path上。

答案 2 :(得分:0)

当Pipenv虚拟环境被破坏时,发生在我身上。删除了virtualenv,让Pipenv制作了一个新的虚拟环境。

它再次起作用。

答案 3 :(得分:-1)

我遇到了同样的问题。 我将几个文件从init.py重命名为'__init__.py'