【问题标题】:'No module named ...' on import导入时“没有名为 ...”的模块
【发布时间】:2014-05-29 04:11:58
【问题描述】:

在过去的几天里,我一直在尝试遵循 django 教程并开始使用 python,但我总是卡在每个教程的同一点上,似乎找不到解决方案。

我有一个代表 django 'app' 的目录,在本例中称为 rango

在rango 内部,我有一个views.py 文件和一个urls.py 文件。我在同一个文件夹中也有__init__.py,所以我的目录如下所示:

rango
  │
  ├── __init__.py
  ├── views.py
  └── urls.py

现在当我添加:

from rango import views

urls.py 文件我收到错误'No module named rango'

我阅读了很多其他问题,人们建议添加

import sys
sys.path.append(".")

但这并没有改变任何东西。仍然出现同样的错误。

有人知道会发生什么吗?

在 windows 上使用 python 2.7

【问题讨论】:

  • 请提供完整的堆栈跟踪。
  • Traceback(最近一次调用最后一次):文件“C:\Users\moe\Desktop\PROGRAMMING\Python\tango\tangoproject\rango\urls.py”,第 1 行,在 中rango import views ImportError: No module named rango [Finished in 0.1s with exit code 1]
  • 你可以试试 sys.path.append('/path/to/dir/ contains/rango')
  • 仍然没有运气,同样的错误

标签: python django import directory importerror


【解决方案1】:

考虑使用相对导入。

urls.py:

from . import views

__init__.py:

__package__ = 'rango'

【讨论】:

  • 感谢您的建议,使用该导入我得到一个不同的错误: ValueError: Attempted relative import in non-package 这至少应该有助于澄清问题所在,对吧?我对 python 很陌生,但我认为 init.py 文件告诉 python 该目录是一个包,这让我很困惑为什么它称该目录为“非包”跨度>
  • 您是否尝试从同一目录中的 python shell 中 import urls ?如果是这样,就会导致该错误。
  • 我正在从 urls 文件中导入视图,视图和 urls 都在 rango 目录中。当我尝试构建 urls.py 时出现错误,它在 from rango 导入视图中引发错误,因为它说没有名为 rango 的模块
猜你喜欢
  • 2021-05-16
  • 2019-04-12
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
相关资源
最近更新 更多