Вопрос: Зачем мне устанавливать каждую зависимость Django после обновления до Ubuntu 16.04 (Xenial Xerus)?


Я обновился с Ubuntu 14.04 (Trusty Tahr) до 16.04 (Xenial Xerus), и я установил Python 3.4 и Django 1.9.2.

Теперь, когда я запускаю проект Django с:

python3.4 manage.py runserver

Я получаю ошибки импорта для SciPy, xslt, NumPy, pylab, а что нет.

Я устанавливаю зависимость один за другим за последние 30-40 минут, но новая ошибка импорта возникает каждый раз.

Что мне нужно сделать?


1
2017-12-26 18:38


Источник


Ubuntu 16.04 имеет Python 3.5 по умолчанию - GioV
да .. Я знаю это, но мой проект использует 3.4, поэтому я тоже установил 3.4 - sachsure
Проверить здесь digitalocean.com/community/tutorials/what-s-new-in-ubuntu-16-04 - GioV
Я думаю, вы должны использовать virtualenv для работы над этим проектом - GioV
devmartin.com/blog/2016/04/... - GioV


Ответы:


Пакеты Python специфичны для версии Python. Каждая версия Python имеет свою собственную библиотеку пакетов, изолированный от библиотек других версий на уровне файловой системы. Пакеты, установленные для одной библиотеки, не будут доступны для другого.

Поэтому, когда вы устанавливаете новую версию Python, вам придется установить в своей библиотеке любые пакеты, которые вам нужны, даже если вы установили их с предыдущей версией. Это также означает, что ранее установленные пакеты остаются доступными с предыдущей версией Python.

И, наконец, рекомендуется установить Django и его зависимости в virtualenv, Это не спасет вас от «боли» переустановки зависимостей при изменении версии, это всего лишь хорошая мера, чтобы не загрязнять вашу систему пакетами, которые нужны только Django, а также позволяет иметь несколько версий Django и его зависимостей независимо. И когда я говорю «боль» переустановки зависимостей, при соблюдении передовой практики это не должно быть болью вообще. Зависимости должны быть объявлены в requirements.txt файл в корне проекта, и переустановка всего должна быть pip install -r requirements.txt,


1
2017-12-26 18:43



но я вижу ту же ошибку, когда я запускаю Python 3.5 - sachsure