2013-06-24 70 views
0

我有一個類似於這篇文章的問題:Install python module to non default version of python on Mac,所以我意識到這些解決方案,但它們不適用於我。使用.sh安裝python模塊到非默認版本的python

我在CentOS上安裝了M2Crypto,這意味着我使用fedora_setup.sh build後跟fedora_setup.sh install才能安裝在我的架構上。

不幸的是,默認的Python版本是2.6,但我使用2.7。我如何執行構建和安裝命令,以便它們構建並安裝到Python2.7站點包?有沒有一個簡單的命令我不知道?我一直在這裏搜索:Python文檔中的http://docs.python.org/2/install/,但是我沒有看到有關.sh腳本的任何內容?

回答

0

這是一個非常難以接受的答案,但我所在的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,從這個

SWIG_FEATURES=-cpperraswarn python setup.py $* 

這個

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

編輯fedora_setup.sh,

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'> 

顯然,整個替換自己的詳細信息。希望這有助於下一個嘗試使用fedora_setup將M2Crytpo安裝到非默認Python版本的人。

0

您應該在爲應用程序環境創建的virtualenv中運行腳本。這會創建一個獨立的環境,它使用您創建virtualenv的Python解釋器,但具有自己的一組庫。

# 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文件做其他事情(改編自mod_wsgi instructions)之前激活的virtualenv:

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

您應該在virtualenv中安裝Django和其他項目組件。激活之後,virtualenv'pip'可以爲你做到這一點。 – SteelPangolin

+0

如果你使用mod_wsgi或類似的東西來提供內容,你需要修改你的WSGI文件來在做任何事情之前激活virtualenv(配置添加到原始文章) – SteelPangolin

相關問題