Python F.A.Q. [ Решения проблем ]

chibit

Мой дом здесь!
Регистрация
4 Дек 2007
Сообщения
418
Реакции
290
Делимся решениями проблем, которые отняли у вас значительное (не 5 минут поиска в гугле) количество времени (проблемы с зависимостями, версиями библиотек и т.п.).
Не забываем, что для Windows уже есть скомпилированные версии библиотек (Для просмотра ссылки Войди или Зарегистрируйся).
Код:
#Устанавливаем зависимости:
#Для Debian
apt-get install make gcc libssl-dev libsqlite3-dev libz-dev libbz2-dev

#Для CentOS
yum install make gcc openssl-devel sqlite-devel zlib-devel bzip2-devel


#Скачиваем архив с интерпретатором питона
wget -c http://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz 
#Распаковываем архив
tar -xvf Python-3.2.3.tgz
#Переходим в папку с распакованным архивом
cd Python-3.2.3
#Устанавливаем в /opt/python3.2 (чтобы без проблем удалить, переустановить, установить несколько версий питона)
./configure --prefix="/opt/python3.2"
#Устанавливаем Python
make && make install
#Создаем символическую ссылку для простого запуска Python (без указания полного пути к бинарнику, достаточно просто запустить python3.2) 
ln -s /opt/python3.2/bin/python3.2 /usr/bin/python3.2

#Скачиваем и устанавливаем пакетный менеджер PIP
wget -c http://python-distribute.org/distribute_setup.py
python3.2 distribute_setup.py
/opt/python3.2/bin/easy_install pip
#Создаем символическую ссылку для простого запуска PIP
ln -s /opt/python3.2/bin/pip /usr/bin/pip
Код:
#Устанавливаем зависимости:
#Для Debian
apt-get install libjpeg8-dev

#Для CentOS
#Примечание: т.к. в CentOS есть только 6 версия библиотеки, а нужна 8, то придется устанавливать из исходников
wget -c http://www.ijg.org/files/jpegsrc.v8d.tar.gz
tar -xzf jpegsrc.v8d.tar.gz
cd jpegsrc.v8d
./configure
make && make install
#Создаем символическую ссылку на библиотеку, иначе при импорте C модуля PIL будет ошибка: ImportError: libjpeg.so.8: cannot open shared object file: No such file or directory
ln -s /usr/local/lib/libjpeg.so.8.4.0 /usr/lib/libjpeg.so.8
#
# Необязательно!
# Для поддержки ZIP/PNG устанавливаем zlib из исходников, иначе будет ошибка: decoder zip not available
#
wget -c http://zlib.net/zlib-1.2.7.tar.gz
tar -xvzf zlib-1.2.7.tar.gz
cd zlib-1.2.7
#Устанавливаем в /usr/local/zlib, чтобы не было конфликтов с другими версиями zlib
./configure --prefix=/usr/local/zlib --shared
make && make install
#Теперь нужно разархивировать PIL (ссылка ниже) и заменить в setup.py ZLIB_ROOT = None на ZLIB_ROOT = libinclude("/usr/local/zlib"), заархивировать обратно в zip и загрузить в root. Установка описывается ниже (шаг скачивания нужно пропустить)


#Скачиваем _вручную_ с http://www.lfd.uci.edu/~gohlke/pythonlibs/ архив PIL-fork-1.1.7-py3-source.zip  [987 KB]  [Source Code]  [Jul 04, 2012] и кладем в root
cd root
#Устанавливаем PIL
pip install ./PIL-fork-1.1.7-py3-source.zip

#Использование PIL для Python 3.x: from PIL import Image
Код:
#Устанавливаем зависимости:
#Debian
apt-get install libmysqlclient-dev

#CentOS
yum install mysql-devel


#Устанавливаем oursql
pip install https://launchpad.net/oursql/py3k/py3k-0.9.3/+download/oursql-0.9.3.zip
Это баг слишком старого ядра (~2.6.18). Для решения этой проблемы установите Python 3.3.x или дождитесь выхода Python 3.2.4
Добавляем в крон команду:
Код:
cd /home/parser/ && python3.2 /home/parser/start.py
Можно указать полный путь к питону, например /usr/bin/python3.2, или же прописать полный путь в начало start.py #!/usr/bin/python3.2 и запускать в кроне только по имени файла.
FAQ будет периодически дополняться/обновляться. Если есть какие-то замечания по FAQ-у, просьба написать автору решения в личку.

В решении проблемы пишите установку зависимостей сразу для нескольких дистрибутивов (минимум debian, centos).
Просьба не писать в теме ничего лишнего, кроме как решение проблемы, которая не решается 5-минутным поиском в гугле.
 
Python 2.7
файл mimetypes.py

Код:
def read_windows_registry(self, strict=True):

меняем except UnicodeEncodeError: на
except UnicodeError:

Реальный баг, до сих пор не поправлен Для просмотра ссылки Войди или Зарегистрируйся
 
Часть советов уже не актуальна. Для Python 3.2/3.3 вышел Pillow (форк PIL, поддерживающий нормальную установку) и Python 3.2.5 (в котором должен быть включен фикс /opt/python3.2/lib/python3.2/subprocess.py:389).
 
Назад
Сверху