ImportError: No module named
ImportError: No module named
我会觉得自己是个十足的白痴,我不知道是不是因为周五晚了,但我很难理解为什么我对此有疑问简单的代码。
目录结构:
~/testapp/
~/testapp/__init__.py
~/testapp/settings.py
~/testapp/workers/a.py
~/testapp/settings.py:
x = 1
~/testapp/workers/a.py:
from settings import x
当 运行 ~/testapp/workers/a.py 到 PyCharm 时,它运行良好。然而,当 运行 在终端中时,我得到:
m@G750JW:~$ python testapp/workers/a.py
Traceback (most recent call last):
File "testapp/workers/a.py", line 1, in <module>
from settings import x
ImportError: No module named settings
我也在 ~/testapp/workers/a.py 中尝试了以下内容:
from testapp.settings import x
并得到同样的错误。我也试过:
from ..settings import x
但这会 return:
m@G750JW:~/$ python testapp/workers/a.py
Traceback (most recent call last):
File "python testapp/workers/a.py", line 1, in <module>
from ..settings import testvar
ValueError: Attempted relative import in non-package
我以前 运行 有很多应用程序都使用过相同的导入方法,并且从未出现过问题。我不确定为什么会突然发生这种情况。
在 Whosebug 和 google 上查看类似的其他问题时,每个人都提到设置和检查系统路径,我已经完成了。如前所述,运行 通过 PyCharm 可以正常工作。如果我在导入之前更改 ~/testapp/workers/a.py 以打印 sys.path、sys.executable 和 os.getcwd(),则 PyCharm 和控制台中的结果是一样。
正如您所说,问题与路径有关...当您执行代码时,解释器会列出一个位置列表来查找您正在导入的内容。在这种情况下,它不知道您项目的根目录。
要解决该问题,请将环境变量PYTHONPATH 设置为项目的根目录。像这样:
export PYTHONPATH=~/testapp
我会觉得自己是个十足的白痴,我不知道是不是因为周五晚了,但我很难理解为什么我对此有疑问简单的代码。
目录结构:
~/testapp/
~/testapp/__init__.py
~/testapp/settings.py
~/testapp/workers/a.py
~/testapp/settings.py:
x = 1
~/testapp/workers/a.py:
from settings import x
当 运行 ~/testapp/workers/a.py 到 PyCharm 时,它运行良好。然而,当 运行 在终端中时,我得到:
m@G750JW:~$ python testapp/workers/a.py
Traceback (most recent call last):
File "testapp/workers/a.py", line 1, in <module>
from settings import x
ImportError: No module named settings
我也在 ~/testapp/workers/a.py 中尝试了以下内容:
from testapp.settings import x
并得到同样的错误。我也试过:
from ..settings import x
但这会 return:
m@G750JW:~/$ python testapp/workers/a.py
Traceback (most recent call last):
File "python testapp/workers/a.py", line 1, in <module>
from ..settings import testvar
ValueError: Attempted relative import in non-package
我以前 运行 有很多应用程序都使用过相同的导入方法,并且从未出现过问题。我不确定为什么会突然发生这种情况。
在 Whosebug 和 google 上查看类似的其他问题时,每个人都提到设置和检查系统路径,我已经完成了。如前所述,运行 通过 PyCharm 可以正常工作。如果我在导入之前更改 ~/testapp/workers/a.py 以打印 sys.path、sys.executable 和 os.getcwd(),则 PyCharm 和控制台中的结果是一样。
正如您所说,问题与路径有关...当您执行代码时,解释器会列出一个位置列表来查找您正在导入的内容。在这种情况下,它不知道您项目的根目录。
要解决该问题,请将环境变量PYTHONPATH 设置为项目的根目录。像这样:
export PYTHONPATH=~/testapp