我知道类似的问题很少,但是没有一个帮助我,所以我正在写一个新的问题。这是我的目录结构:
- 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”
答案 0 :(得分:1)
tl; dr:重命名您的软件包
您的包裹是否真正命名为mypackage
?我猜不会。 :)
我有同样的错误。就我而言,我为mypackage
选择的名称恰好是我不知道的现有Python库的名称。
重命名程序包后,错误消失了。
答案 1 :(得分:0)
我猜您在运行run.py
时,当前的工作目录不在该文件所在的位置。因此mypackage
不在sys.path
上。
答案 2 :(得分:0)
当Pipenv虚拟环境被破坏时,发生在我身上。删除了virtualenv,让Pipenv制作了一个新的虚拟环境。
它再次起作用。
答案 3 :(得分:-1)
__init__.py
'