Установите модуль Python в версию Python не по умолчанию, используя.sh

У меня есть проблема, похожая на эту: я установил модуль python не на версию Python по умолчанию на Mac, поэтому я знаю об этих решениях, но они не работают для меня.

Я устанавливаю M2Crypto на CentOS, что означает, что я много использую fedora_setup.sh build с последующим fedora_setup.sh install для того, чтобы установить на моей архитектуре.

К сожалению, версия Python по умолчанию - 2.6, но я использую 2.7. Как мне выполнить команды сборки и установки, чтобы они собирались и устанавливались в пакеты сайтов Python2.7? Есть ли простая команда, которую я не знаю? Я искал здесь: http://docs.python.org/2/install/ в Документах Python, но я ничего не вижу в сценариях.sh?

2 ответа

Решение

Это был невероятно трудный ответ, но команда поддержки в Webfaction, где я размещаюсь, помогла мне. Прямо из поддержки мне дали:

Первая сборка,

wget http://prdownloads.sourceforge.net/swig/swig-2.0.8.tar.gz
tar -xf swig-2.0.8.tar.gz 
cd swig-2.0.8
./configure --prefix=$HOME
make
make install

Чем получить m2crypto,

svn checkout http://svn.osafoundation.org/m2crypto/tags/0.21/ m2crypto-0.21
cd m2crypto-0.21/

Отредактируйте fedora_setup.sh из этого

SWIG_FEATURES=-cpperraswarn python setup.py $*

к этому,

SWIG_FEATURES=-cpperraswarn python2.7 setup.py $*

Затем построить, затем установить,

./fedora_setup.sh build
./fedora_setup.sh install --prefix=$HOME

[me@web342 lib]$ python2.7
Python 2.7.5 (default, May 16 2013, 20:16:09) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import M2Crypto
>>> print M2Crypto
<module 'M2Crypto' from '/home/me/lib/python2.7/site-packages/M2Crypto-0.21-py2.7-linux-x86_64.egg/M2Crypto/__init__.pyc'>

Очевидно, подставьте свои собственные детали повсюду. Надеюсь, что это поможет следующему парню, пытающемуся установить M2Crytpo, используя fedora_setup, на версию Python не по умолчанию.

Вы должны запускать свои скрипты в virtualenv, созданном для среды вашего приложения. Это создает изолированную среду, в которой используется интерпретатор Python, с которым вы создали virtualenv, но с собственным набором библиотек.

# create the virtualenv folder: M2Crypto-venv
python2.7 virtualenv.py --distribute M2Crypto-venv

# activate the virtualenv, changing environment variables to use its Python interpreter
. M2Crypto-venv/bin/activate

# see how the current python has changed
which python        # should be M2Crypto-venv/bin/python
python --version    # should be 2.7

# after activating, run your install scripts

Если вы используете mod_wsgi или что-то подобное для обслуживания контента, вам нужно изменить файл WSGI, чтобы активировать virtualenv, прежде чем делать что-либо еще (адаптировано из инструкций mod_wsgi):

import os.path

virtualenv_path = '/path/to/M2Crypto-venv'
activate_this = os.path.join(virtualenv_path, 'bin/activate_this.py')
execfile(activate_this, dict(__file__ = activate_this))

# rest of the WSGI file...
Другие вопросы по тегам