在阅读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
这让我很困惑。有什么问题?
答案 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
这些错误常常是进入的障碍,原始开发人员不希望程序员使用该软件了解integer
和module
之间的区别。所以添加了这样的小问题,以帮助鼓励您需要更深入地了解源代码。它就像一个机械师,通过更换分配器盖上的电线,帮助每个人成为更好的机械师。在你正确地交换它们之前它不会起作用。
答案 2 :(得分:1)
from django.forms.utils import flatatt
它适用于django 1.11版本,可以使用1.8到1.10