13

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

- 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'
4

5 回答 5

7

tl;dr:重命名你的包

你的包裹真的有名字mypackage吗?我猜不是。:)

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

于 2020-03-03T07:07:50.567 回答
3

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

于 2019-04-12T20:11:32.083 回答
1

当 Pipenv 虚拟环境以某种方式损坏时发生在我身上。删除了 virtualenv,让 Pipenv 新建一个。

它再次起作用。

于 2019-10-16T16:14:32.340 回答
0

我在这里看不到的一个答案是,如果模块没有以.py. 就我而言,事实证明有问题的模块没有正确后缀。如果您收到此错误,请检查您的所有模块文件是否正确命名。

于 2022-02-02T12:21:23.113 回答
-1

我面临同样的问题。我将一些文件从 init.py 重命名为“ __init__.py

于 2019-09-28T13:18:07.083 回答