Установите модуль 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...