Python не может найти dateutil.relativedelta
Я пытаюсь запустить программу с помощью 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 и бьюсь об заклад, я делал вот что:--12-->
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
установит библиотеки в каталог по умолчанию, а не в пакеты сайтов виртуальных сред.
4 ответов
Я также столкнулся с этой проблемой, простым решением, которое я использовал, было добавить --upgrade до конца команды. Это заставило его установить его, Хотя python думал, что он был установлен. Это решило проблему.
Так что если у вас есть эта проблема, попробуйте следующее:
sudo pip install python-dateutil --upgrade
это не может повредить ничего, поэтому нет никакого вреда в том, чтобы просто заставить его переустановить.
у меня была аналогичная проблема, но по более простой причине. Мой свежий virtualenv просто не был установлен dateutil, и я не знал имя пакета Python. Я пытался!--0-->, что, очевидно, не сработало, так как имя пакета было неверным. Бег!--1-- > вместо этого работал (не прибегая к sudo
).
Это похоже на проблему установки пакета для меня. Список устранения неполадок, который приходит мне на ум:
- убедитесь, что вы установили пакет.
- если установлен, убедитесь, что файлы были сохранены в правильном каталоге (каталог, доступный из вашего интерпретатора python (=в PYTHONPATH, полезная статья здесь).
- проверить разрешение на эти файлы.
- перезагрузите оболочку, если вы попытались импортировать там.
- перезагрузите компьютер (ой... это 10 лет я использую GNU / Linux, но я все еще страдаю от плохих воспоминаний о Windows! ;)
HTH (по крайней мере, немного!).
это довольно старый поток, поэтому поместите его только для потомков (предыдущий комментарий об установке 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, чтобы вы могли получить к новому.