Цель - установить локальную версию свежего дистрибутива Python 3.5 и группу пакетов, полезных для ковыряния в данных. Платформа - Linux Mint 17.2 x64. Устанавливаем пакет с компиляторами на все случаи жизни, скачиваем с официального сайта архив с исходниками и распаковываем его, скажем, в каталог ~/Python-3.5.0. В терминале перемещаемся в него и начинаем.
sudo apt-get install build-essential git git-core xz-utils
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz
tar -xpJf Python-3.5.0.tar.xz
cd Python-3.5.0
Для начала нам нужно установить зависомости, без которых в дальнейшем не соберутся некоторые пакеты. Не буду приводить, какие для чего, оставлю для любознательных. Скажу лишь, что первая пара команд - для того, чтобы при компиляции Python не предупреждал нас о пропуске некоторых пакетов ввиду отсутствия библиотек. Это не повлияет на итоговый успех установки, но может всплыть позже.
sudo apt-get install tk-dev libsqlite3-dev libbz2-dev libfreetype6-dev
sudo apt-get install liblzma-dev libgdmb-dev libreadline-dev
sudo apt-get install lib32ncurses5-dev libpng12-dev libjpeg-dev tk
sudo apt-get install liblapack-dev libplas-dev gfortran libpq-dev
В среде Google Cloud в Ubuntu 15.04 пакеты libgdmb-dev и libplas-dev не находятся, возможно есть замена, но я не разбирался, не очень то и нужны.
Теперь собственно, сборка и проверка. Предварительно создадим каталог для локальной версии Python, у меня это ~/local.
./configure --prefix=$HOME/local
make -j4
make test
make install
У меня не установился модуль _ctypes, и непонятно, чего ему не хватило. Если знаете, в чем дело, напишите в комментариях. Стоит добавить в файл ~/.bashrc несколько строк, чтобы оболочка была в курсе, где наш новый Python и его библиотеки живут.
export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=$HOME/local/include/:$C_INCLUDE_PATH
Теперь настало время для наших изыскательских (и просто ежедневно полезных) пакетов. Первая строка - mast have для исследователя, остальные - не обязательно, они просто хорошие :)
pip3 install numpy scipy sklearn pandas matplotlib seaborn ipython[all] jupyter
pip3 install tornado pillow psycopg2 sqlalchemy cython nltk
pip3 install requests requests_oauthlib elasticsearch
pip3 install django django-bootstrap3 django-admin-bootstrapped
pip3 install flask flask-admin flask-login apscheduler pymongo pika redis
С matplotlib могут возникнуть сложности, а именно - без выбрасывания ошибок не показывает окно с результатом. Чтобы этого не происходило мы и установили tk и собрали Python с tk-dev. Стоит проверить, что в файле с настройками matplotlib (у меня это '~/local/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc') выставлен верный параметр backend: TkAgg. Можно выставить его и прямо в коде. Также, можно попробовать установить matplotlib с github:
pip3 install git+https://github.com/matplotlib/matplotlib.git
Кроме того, при сборке matplotlib может ругнуться на отсутствие freetype, даже если установлен libfreetype6-dev. Такое я наблюдал, когда собирал Docker контейнер с основой на ubuntu:trusty. Помогло создание ссылки:
ln -s /usr/include/freetype2/ft2build.h /usr/include/
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use("TkAgg")
plt.imshow(np.random.random((10, 10)))
plt.show()
Красивая калякамаляка получилась!
Комментариев нет:
Отправить комментарий