У меня есть пакет python dateutil
в каталоге ~/.local/lib/python2.7/site-packages
, а также один в /usr/lib/python2.7/dist-packages/dateutil
. Когда я пытаюсь запустить исполняемый файл из kalibr (инструмент калибровки камеры, я загрузил CDE), rrule.py
из пакета dateutil
в ~/.local/lib/python2.7/site-packages
выдает ошибку «ImportError: Нет модуля с именем фракции». Я могу запустить kalibr, удалив указанный пакет dateutil
(так как он использует пакет из /usr/lib/python2.7/dist-packages/dateutil
), но я боюсь, что это повлияет на другие проекты.
Итак, я решил, что основная проблема здесь в том, что python предпочитает пакет dateutil
в ~/.local/lib/python2.7/site-packages
пакету в /usr/lib/python2.7/dist-packages/dateutil
.
Как я могу заставить питон предпочесть последний?
(Я использую Ubuntu 16.04)
fractions
из консоли Python? потому что он находится в библиотеке Python. Должно работать отовсюду. - person Jean-François Fabre   schedule 28.12.2016PYTHONPATH
должен быть таким же, если ваш исполняемый файл имеет ту же среду, что и у вас при запуске REPL, поэтому не имеет значения, используете вы REPL или нет. Мне очень странно, что ваши зависимости не могут импортироватьfractions
. У них должна быть возможность, особенно после того, как удаление вашей локальной установкиdateutil
заставило вас использовать стандартную, что указывает на то, что вашаPYTHONPATH
должна быть правильной. Вы должныimport fractions
затемhelp(fractions
), чтобы узнать, какую версию REPL вы используете. - person 2rs2ts   schedule 28.12.2016