在Django中导入Python模块时出错

3 投票
3 回答
8209 浏览
提问于 2025-04-15 14:03

在我的Django项目中,出现了一个错误,提示“没有名为elementtree的模块”。

  from elementtree import ElementTree 

不过,这个模块其实是安装好的(也就是说,我可以打开一个交互式的Python环境,输入那行代码时不会出现ImportError),而且包含这个模块的目录也在PYTHONPATH里。但是,当我在浏览器中访问任何页面时,它却找不到这个模块,结果又出现了ImportError。这可能是什么原因呢?

3 个回答

0

首先,找到你安装Python的文件夹。

比如说:

C:\Python26\Lib\site-packages

然后检查一下这个文件夹里有没有elementtree和django这两个东西。

如果这两个都没有,那可能是你安装了多个版本的Python,每个版本都有自己的安装文件夹。


不管怎样,你可以通过运行这个命令来解决你的问题:

python setup.py install

你需要运行两次这个命令,一次是在django的下载文件夹里,另一次是在elementtree的下载文件夹里。这样就能把这两个东西安装到你当前使用的Python版本里。

参考资料:

1

我也遇到过跨平台的问题,就是在不同的系统上,ElementTree这个东西来自不同的模块……最后我找到的解决办法是这个:

try:
    import elementtree.ElementTree as ET
except:
    import xml.etree.ElementTree as ET

这可能对你有帮助,也可能没有……

7

你可以在 Django 的命令行界面中导入 elementtree 吗:

python manage.py shell

假设你有多个 Python 版本,但不知道哪个版本在运行你的网站,你可以在你的视图中添加以下代码,然后把 python_ver 传到你的模板里,这样就能显示你正在使用的 Python 版本:

import sys
python_ver = sys.version

你也可以在你的 settings.py 文件中明确地添加 elementtree 的路径:

import sys
sys.path.append('path to where elementtree resides')

撰写回答