Python找不到dateutil.relativedelta

时间:2011-12-07 16:19:28

标签: python install yum python-dateutil

我正在尝试使用paster serve运行程序,但我一直收到错误:

ImportError: No module named dateutil.relativedelta

我正在运行python版本2.6.7和dateutil版本1.5,所以应该安装它。

有没有人知道为什么会发生这种情况?

我正在使用

导入
from dateutil.relativedelta import *

我搜索时甚至可以看到包裹:

/usr/lib/python2.7/site-packages/dateutil/relativedelta.pyc
/usr/lib/python2.7/site-packages/dateutil/relativedelta.py
/usr/lib/python2.7/site-packages/dateutil/relativedelta.pyo

更新

所以这篇文章现在已经有几个月了,它只是为我赢得了热门问题徽章,我认为值得一看,看看我是否可以通过更多经验支持给出这个问题的一个好答案我了。

我立即看一下这个,看到dateutil仅为python2.7安装,我打赌我在做的是这个:

sudo yum install python-dateutil

sudo将切换到默认的Python版本(即Python2.7而不是2.6.4)

解决这个问题就像:

su
(switch to virtual environment)
yum install python-dateutil

使用 su ,然后切换到虚拟环境将提供root访问权限并安装到虚拟python目录。使用 sudo 会将库安装到默认目录,而不是虚拟环境site-packages。

4 个答案:

答案 0 :(得分:56)

我也遇到过这个问题,我最终使用的简单解决方案是将--upgrade添加到命令的末尾。这迫使它安装它,即使python认为它已安装。这解决了这个问题。

因此,如果您遇到此问题,请尝试以下操作:

sudo pip install python-dateutil --upgrade

它不可能伤害任何东西,所以强迫它重新安装没有任何害处。

答案 1 :(得分:3)

我有一个类似的问题,但原因更简单。我的新virtualenv根本没有安装dateutil,我不知道Python包名。我尝试了pip install dateutil,由于包名不正确,显然无效。运行pip install python-dateutil代替工作(不使用sudo)。

答案 2 :(得分:1)

这看起来像是我的包安装问题。我想到的故障排除列表:

  1. 确认您已安装该软件包。
  2. 如果已安装,请验证文件是否已存储在正确的目录中(可从python解释器访问的目录(=在PYTHONPATH中,有用的文章here)。
  3. 验证对这些文件的权限。
  4. 如果您尝试导入,请重新启动shell。
  5. 重新启动你的计算机(哎哟......我使用GNU / Linux已经10年了,但我仍然遭受Windows的错误记忆!)。
  6. HTH(至少有点!)。

答案 3 :(得分:1)

这是一个相当古老的线程,所以把它放在后代(之前关于安装python-dateutil的评论对我有帮助,所以也许我的评论可以帮助别人)。

对于Mac OS(Snow Leopard,不确定其他版本)的用户,dateutils软件包默认位于:

/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/dateutil

而pip install将包写入:

/Library/Python/2.6/site-packages

并且不会更新/Library/Python/2.6/site-packages/easy-install.pth文件。因此,当您导入dateutil时,您仍然会指向旧位置,您可以通过" import dateutil; dateutil.__file__"来验证这一点。

所以我所做的(可能是更好的方法)是将旧目录(/System/Library/.../dateutil)重命名为dateutil.obsolete并重新启动python,然后再次运行相同的命令集。这不会对路径文件或sys.path执行任何操作,但会跳过旧的dateutils包,以便您可以使用新的。\ / p>