0

我有一个类似于这篇文章的问题:Install python module to non default version of python on Mac,所以我知道这些解决方案,但它们对我不起作用。

我在 CentOS 上安装 M2Crypto,这意味着我经常使用它fedora_setup.sh buildfedora_setup.sh install安装在我的架构上。

不幸的是,默认的 Python 版本是 2.6,但我使用的是 2.7。如何执行构建和安装命令,以便它们构建并安装到 Python2.7 站点包?有没有我不知道的简单命令?我一直在这里搜索: Python Docs 中的http://docs.python.org/2/install/,但我没有看到任何关于 .sh 脚本的信息?

4

2 回答 2

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 文件以在执行任何其他操作之前激活 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...
于 2013-06-24T03:47:03.733 回答
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

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

显然,在整个过程中替换您自己的详细信息。希望这可以帮助下一个尝试使用 fedora_setup 将 M2Crytpo 安装到非默认 python 版本的人。

于 2013-06-24T23:40:19.163 回答