Замена системы Python - отличная идея. Перемещение по одной точке выпуска возможно не сломает вашу систему, но кто хочет рискнуть? Установка библиотек в систему Python с использованием easy_install
также может привести к проблемам , если они конфликтуют друг с другом.
Альтернативой является построение Python из источника, установите его в папку домой и использовать virtualenv для создания изолированных сред, в которые вы можете установить любые библиотеки, которые вам нужны для данного проекта с использованием pip
(который больше современный эквивалент easy_install
).
Для Python 2.7, если вы хотите некоторые «дополнительные» части стандартной библиотеки , это значит, что нужно построить еще пару вещей. Вот скрипт (в основном слепленный из постов блога, разбросанных по межсети), что работает для меня на Debian «Squeeze» (стабильный, на момент написания статьи):
#!/bin/bash -e
# Setup
sudo aptitude install build-essential
mkdir -p ${HOME}/.local
mkdir build-python
cd build-python
# Get sources
### Tcl/Tk <http://www.tcl.tk/software/tcltk/download.html>
wget "http://downloads.sourceforge.net/project/tcl/Tcl/8.5.13/tcl8.5.13-src.tar.gz"
wget "http://downloads.sourceforge.net/project/tcl/Tcl/8.5.13/tk8.5.13-src.tar.gz"
### Berkeley DB <http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html>
wget "http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz"
### Python <http://www.python.org/download/>
wget "http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz"
# Build Tcl
tar xzf tcl8.5.13-src.tar.gz
cd tcl8.5.13/unix
./configure --prefix=${HOME}/.local
make
make install
cd ../..
# Build Tk
tar xzf tk8.5.13-src.tar.gz
cd tk8.5.13/unix
./configure --prefix=${HOME}/.local
make
make install
cd ../..
# Build Berkeley DB 4.8
tar xzf db-4.8.30.tar.gz
cd db-4.8.30/build_unix
../dist/configure --prefix=${HOME}/.local/opt/BerkeleyDB.4.8 --enable-tcl --with-tcl=${HOME}/.local/lib
make
make install
cd ../..
# Set compile flags
export LDFLAGS="-L${HOME}/.local/lib -L${HOME}/.local/opt/BerkeleyDB.4.8/lib"
export CPPFLAGS="-I${HOME}/.local/include -I${HOME}/.local/opt/BerkeleyDB.4.8/include"
export CXXFLAGS=${CPPFLAGS}
export CFLAGS=${CPPFLAGS}
export LD_LIBRARY_PATH=${HOME}/.local/lib:${HOME}/.local/opt/BerkeleyDB.4.8/lib
export LD_RUN_PATH=${LD_LIBRARY_PATH}
# Build Python 2.7
tar xzf Python-2.7.3.tgz
cd Python-2.7.3
./configure --prefix=${HOME}/.local
make
make altinstall
cd ..
# Install virtualenv, pip and virtualenvwrapper
curl http://python-distribute.org/distribute_setup.py | ${HOME}/.local/bin/python2.7
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | ${HOME}/.local/bin/python2.7
${HOME}/.local/bin/pip install virtualenvwrapper
# Update ~/.bashrc
echo 'export PATH="${HOME}/.local/bin:${PATH}"' >> ${HOME}/.bashrc
echo 'export WORKON_HOME="${HOME}/.local/virtualenv"' >> ${HOME}/.bashrc
echo 'export VIRTUALENVWRAPPER_PYTHON="${HOME}/.local/bin/python2.7"' >> ${HOME}/.bashrc
echo 'export VIRTUALENVWRAPPER_VIRTUALENV="${HOME}/.local/bin/virtualenv"' >> ${HOME}/.bashrc
echo 'export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--python=python2.7"' >> ${HOME}/.bashrc
echo 'source ${HOME}/.local/bin/virtualenvwrapper.sh' >> ${HOME}/.bashrc
# Finish ...
cd ..
echo -e "\n\n ... Done!"
Этот скрипт запросит пароль чтобы установить GCC и т. д., если это необходимо, тогда потребуется время, чтобы построить все - около 25 минут на моей (древней) машине и (ужасном) подключении к Интернету. Если вы обратили внимание, в какой-то момент вы увидите следующее прошлое сообщение прокрутки:
Python build finished, but the necessary bits to build these modules were not found:
bsddb185 dl imageop
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Эти четыре модуля являются архаичными и/или устарели, так что вам не нужно беспокоиться о них. Если в сообщении упоминаются любые другие модули, это означает, что в вашей системе не установлена нужная библиотека . Вы все равно можете запустить Python, если это так, но не сможете импортировать эти модули. Кричите в комментариях, если это вас затронуло, и Я обновлю соответствующий сценарий.
Как только это успешно завершено, вы должны источник вашего .bashrc
:
$ source ~/.bashrc
... и тогда вы сможете запустить скомпилированный Python ...
$ python2.7
Python 2.7.3 (default, Nov 17 2012, 02:00:26)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
. .. создать virtualenv для работы в ...
$ mkvirtualenv my_env
$ python
Python 2.7.3 (default, Nov 17 2012, 02:00:26)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
... установить библиотеки в него ...
$ pip install beautifulsoup4
... и так далее.
Для выхода из virtualenv:
$ deactivate
Чтобы повторно ввести его на более поздний срок:
$ workon my_env
Для более, проверьте документацию для pip и virtualenvwrapper.
Убедитесь, что 'pkg_resources' находится в пути python. Вы можете проверить это, напечатав 'sys.path' в' setup.py'. Если это не путь, добавьте его, добавив к 'sys.path' – inspectorG4dget
Не могли бы вы просто apt-получить обновление пакета python до 2.7? – synthesizerpatel
@synthesizerpatel Я попытался apt-получить обновление, но я все равно получаю те же ошибки – hyleaus