2013-06-24 5 views
0

У меня проблема, похожая на эту запись: Install python module to non default version of python on Mac, поэтому я знаю об этих решениях, но они не работают для меня.Установите python-модуль на нестандартную версию python, используя .sh

Я устанавливаю 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?

ответ

0

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

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

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 

[[email protected] 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.

0

Вы должны запустить свои скрипты в 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 instructions):

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... 
+0

Остальная часть моего проекта сможет получить доступ к ресурсам, установленным в virtualenv? ЕСЛИ Django не может разговаривать с M2Crypto, тогда он побеждает цель для меня. Смогу ли я просто добавить virtualenv в Python Path или что-то еще? – fildred13

+0

Вы должны установить Django и другие компоненты проекта в virtualenv. После того, как вы активируете, виртуальный «pip» может сделать это за вас. – SteelPangolin

+0

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