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

新手上路,请多包涵

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

 - 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 的环境检查:

 Traceback (most recent call last):
  File "run.py", line 6, in <module>
    print(os.environ['PYTHONPATH'])
  File "C:\Users\white\AppData\Local\Programs\Python\Python37\lib\os.py", line 678, in __getitem__
    raise KeyError(key) from None
KeyError: 'PYTHONPATH'

原文由 Andrii H. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 707
2 个回答

当 Pipenv 虚拟环境以某种方式被破坏时发生在我身上。删除 virtualenv 并让 Pipenv 创建一个新的。

它又起作用了。

原文由 PunchyRascal 发布,翻译遵循 CC BY-SA 4.0 许可协议

tl;dr:重命名你的包裹

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

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

原文由 jciloa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题