Я пытаюсь запустить программу, используя paster serve
, но постоянно получаю сообщение об ошибке:
ImportError: нет модуля с именем 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
установлен только для Python 2.7, и держу пари, что я делал следующее:
sudo yum install python-dateutil
На что sudo
пришлось бы переключиться на версию Python по умолчанию (т. е. Python 2.7 вместо 2.6.4).
Решить это было бы так же просто, как:
su
(switch to virtual environment)
yum install python-dateutil
Использование su
и последующее переключение на виртуальную среду предоставит корневой доступ и установку в виртуальный каталог Python. Использование sudo
приведет к установке библиотек в каталог по умолчанию, а не в пакеты сайтов виртуальных сред.
rpm
обычно не знает о виртуальных средах. Если вы не получаетеpython-dateutil
из очень необычного rpm из нестандартного репозитория Fedora, установка пакета python скопирует файлы в одно и то же место независимо от вашей виртуальной среды. С другой стороны, получение root (или нет) и использованиеpip
или любого другого инструмента для упаковки Python должно устанавливаться в нужном месте. На самом деле, большинство RPM используют этот механизм; но на этапе сборки, т.е. сопровождающим пакета. - person SingleNegationElimination   schedule 14.10.2012