![](/img/trans.png)
[英]ImportError: cannot import name '__version__' from 'sklearn' (unknown location)
[英]ImportError: cannot import name 'app' from 'mypackage' (unknown location)
我知道类似的问题很少,但没有一个对我有帮助,所以我正在写一个新的。 这是我的目录结构:
- 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'
tl;dr:重命名你的包
你的包裹真的被命名为mypackage
吗? 我猜不是。 :)
我有同样的错误。 就我而言,我为mypackage
选择的名称恰好是我不知道的现有 Python 库的名称。 一旦我重命名了我的包,错误就消失了。
我猜当您运行run.py
时,当前的又名工作目录不是该文件所在的位置。 所以mypackage
不在sys.path
上。
我面临同样的问题。 我将一些文件从 init.py 重命名为' __init__.py
'
当 Pipenv 虚拟环境以某种方式损坏时发生在我身上。 删除了 virtualenv,让 Pipenv 新建一个。
它再次起作用。
我在这里看不到的一个答案是,如果模块没有以.py
为后缀,Python 将无法识别它们。 就我而言,事实证明有问题的模块没有正确后缀。 如果您收到此错误,请检查您的所有模块文件是否正确命名。
在文件夹中保留一个init .py 文件。 然后它将作为模块导入,否则它将给出与未知位置相同的错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.