2012-11-17 1 views
4

Я использую debian с установкой python по умолчанию из 2.6 Я хотел перейти на python 2.7, включая установку easy_install. Я последовал за чужую инструкцию, чтобы удалить мой/USR/BIN/питон, а затем связатьМиграция установки по умолчанию python с 2.6 до 2.7: проблемы с easy_install

ln -s /usr/bin/python2.7 /usr/bin/python 

Я скачал последнюю версию setuptools

и cd'ed в файл. Установочная помощь попросила меня, чтобы запустить его в качестве программной оболочки, и я, со следующей ошибкой:

sh setuptools-0.6c11-py2.7.egg 
Traceback (most recent call last): 
    File "<string>", line 1 in <module> 
ImportError: No Module named setuptools.command.easy_install 

У меня есть ощущение, что моя установка easy_install связана с версией Python Я бегом, но Я не могу это понять. Я попытался также загрузить файл .tar.gz, CD-ING в каталог, и работает

python setup.py build; setup.py install 

После я бегу, что я могу использовать easy_install, со следующей ошибкой:

Traceback (most recent call last): 
    File "/usr/local/bin/easy_install", line 5, in <module> 
    from pkg_resources import load_entry_point 
ImportError: No Module named pkg_resources 

Can кто-нибудь предлагает мне решение? Спасибо за помощь.

+0

Убедитесь, что 'pkg_resources' находится в пути python. Вы можете проверить это, напечатав 'sys.path' в' setup.py'. Если это не путь, добавьте его, добавив к 'sys.path' – inspectorG4dget

+0

Не могли бы вы просто apt-получить обновление пакета python до 2.7? – synthesizerpatel

+0

@synthesizerpatel Я попытался apt-получить обновление, но я все равно получаю те же ошибки – hyleaus

ответ

5

Замена системы 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.

+0

Это сработало очень хорошо. Спасибо за вашу помощь. – hyleaus

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

  • Нет связанных вопросов^_^