2016-09-04 4 views
0

Я недавно установил с python.org python 3.5, так как диспетчер пакетов не поддерживает новую версию. Я установил pip и другие пакеты, но когда я проверил matplotlib.pyplot, у меня появились ошибки, и он также не может импортировать tkinter. Поскольку я проверил это, потому что tkinter поддерживается некоторым другим приложением (ActiveTCL).Как установить tcl/tk на python 3.5?

Но я не смог установить его: скачал отсюда http://www.activestate.com/activetcl/downloads пакет и запустил sudo ./install.sh (файл bash в пакете), он показывает некоторый графический интерфейс пользователя, установленный, но ничего не paged для python.

И по какой-то причине на всех questinons все ответы, как: бег

sudo apt-get install python3-tk

Но это не работает на 3.5.

ответ

1

Это просто неправильно. Linux Mint 18 имеет Python 3.5; если вы хотите обновить версию Python, вы должны действительно должны просто обновиться до Mint18; Python занимает центральное место в много программного обеспечения, поэтому простая установка его новой версии не будет работать со старыми пакетами из apt-get и является рецептом для катастрофы.

Обратите внимание, что причина, по которой у нас есть дистрибутивы Linux, заключается в том, чтобы предложить согласованные архивы пакетов, т.е. любой пакет Mint с использованием Python был построен для точно питона, используемого в вашем текущем выпуске Mint. Если вы теперь устанавливаете python3-tk из пакета, он также предназначен для работы с Python с Mint, а не с Python, который вы установили отдельно.

Всякий раз, когда у вас есть две версии одной и той же библиотеки/структуры, одна из ваших дистрибутивов, одна из вашей локальной установки, вы столкнулись с риском конфликтов и зарабатываете на работе каждые, которые должны использовать ваши более новую версию библиотеки/рамки. Это утомительно, и, опять же, причина, по которой у вас есть дистрибутивы Linux, которые делают это за вас.

+0

Это замечательно новости, я не знал об этом. Я прекрасно понимаю, что файл менеджера пакетов работает только для собственных приложений. Почему вы думали иначе? И вопрос довольно прост, даже если mint 18 поддерживает 3.5, в будущем будет создан новый питон, который не будет поддерживаться монетным двором 18 и т. Д. Поэтому лучше всего знать, как это делать. – Giorgi

+0

Дело в том, что «как это сделать» заключается в следующем: создание отдельного префикса для ваших не-дистрибутивных версий и сохранение всего отдельного. Это не то, что вы обычно делаете. Всякий раз, когда у вас есть две версии одной и той же библиотеки/структуры, одна из ваших дистрибутивов, одна из вашей локальной установки, вы сталкиваетесь с риском конфликтов и получаете работу по созданию ** каждого ** программного обеспечения, которое должно использовать вашу новую библиотеку/framework версия самостоятельно. Это утомительно, и, опять же, причина, по которой у вас есть дистрибутивы Linux, которые делают это за вас. –

+0

Это не то, что обычно делается, но знание того, как это можно сделать, полезно. – Giorgi

0

Необходимо установить ActiveTcl 8.6, (повторно) установить Python 3.5 и установить Matplotlib 1.5.3.

Ключевым моментом является реконфигурация Python после установки ActiveTcl.

Давайте сделаем это шаг за шагом.

Установить ActiveTcl как обычно

cd path/to/activetcl 
bash install.sh 

Предположим, что вы установили ActiveTcl в папке /opt/ActiveTcl-8.6 (выбор программы установки по умолчанию).

Вы должны установить и сконфигурировать Python следующим образом:

cd path/to/python 

./configure --with-ensurepip --with-tcltk-includes='-I/opt/ActiveTcl-8.6/include' 
    --with-tcltk-libs='/opt/ActiveTcl-8.6/lib/libtcl8.6.so /opt/ActiveTcl-8.6/lib/libtk8.6.so' 

./make 
./make test 
./make install 

Убедитесь, что конфигурация является правильной импортируемым tkinter модуля в оболочку Python

>>> import tkinter 

Наконец установить Matplotlib как обычно

cd path/to/matplotlib 
python setup.py build 
python setup.py install 
+0

Возможно, вам удастся просто запустить 'sudo update-python-modules -a' вместо переустановки python 3.5 – RockJake28

Смежные вопросы