Python:无法导入util

时间:2011-03-19 17:05:53

标签: python

在阅读django / forms / widgets.py的代码时,我看到了:

from util import flatatt

为了深入挖掘,我尝试在终端中的Python shell中导入util模块,但是我收到了一个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ImportError: No module named util
这让我很困惑。有什么问题?

3 个答案:

答案 0 :(得分:2)

Django是(ab?)使用Python的导入系统从django.forms.util导入的东西。改为导入该模块。

答案 1 :(得分:1)

在python中,你得到了这个ImportError:

Traceback (most recent call last):
  File "b.py", line 3, in <module>
    from util import flatatt
ImportError: No module named util

那里的一些程序员为你的python脚本创建了一个库来使用。您的程序无法找到该库。所以翻译告诉你它无法找到。你有几个选择。您必须自己定义库和功能,或者您必须查看您尝试运行的程序的说明和源代码,并尝试弄清楚哪些内容被破坏以防止包含库。或者最后一个选项是删除当前脚本中该库的任何用法。

您可以自己定义模块:

将它放在util.py中与widgets.py文件相同的目录中。

def flatatt(prompt):
    print("ok")

如果你定义了这个,你会得到一个不同的错误,脚本将导入你的库,并找到那个方法,但后来会做错事,因为设计该代码的程序员可能会考虑其他一些功能。

你需要弄清楚你做错了什么,或者原来的程序员做错了什么,或者你的特定系统如何不同以使其发挥作用。

通过滚动自己的python模块,您可以了解更多关于我上面所述的内容:Python: How to import other Python files

这些错误常常是进入的障碍,原始开发人员不希望程序员使用该软件了解integermodule之间的区别。所以添加了这样的小问题,以帮助鼓励您需要更深入地了解源代码。它就像一个机械师,通过更换分配器盖上的电线,帮助每个人成为更好的机械师。在你正确地交换它们之前它不会起作用。

答案 2 :(得分:1)

from django.forms.utils import flatatt

它适用于django 1.11版本,可以使用1.8到1.10