CentOS(rel6)与默认的python 2.6,但分开的3.3.5安装

我有一个安装了python(2.6)的CentOS服务器(rel6),但是我需要3.3+的一些function。 我将3.3安装到一个单独的文件夹中,并创build了一个符号链接来执行它:

  1. 我安装了设置工具:yum install python-setuptools
  2. 我安装了一个需要的模块“pandas”easy_installpandas
  3. 我执行了我的pyton脚本,遇到了一个需要我使用更新版本的错误
  4. 我下载并安装了Python 3.3.5到它自己的文件夹,以便不覆盖我的默认Python
    • wget http://www.python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz
    • tar xJf ./Python-3.3.5.tar.xz
    • cd ./Python-3.3.5
    • ./configure –prefix = / opt / python
    • 使
    • 进行安装
  5. 使符号链接,让我执行这个新的Python:
    • ln -s /opt/python3.3/bin/python3.3〜/ bin / py

问题是,当我用我的新py别名执行python脚本时,它没有安装默认安装所需的所有插件(显式MySQLdb)。

我如何去安装MySQLdb模块,或者任何有关这个问题,以便新的Python 3.3.5安装可访问或可用? 还是有办法让2.6中的当前模块也可以使用到3.3.5?

更新:

我的虚拟环境安装如下

root@server [/]# source ./root/python3.3/bin/activate (python3.3)root@server [/]# (python3.3)root@server [/]# pip freeze MySQL-python==1.2.5 numpy==1.8.1 pandas==0.14.0 python-dateutil==2.2 pytz==2014.4 six==1.6.1 

但是当我执行导入时,它仍然失败

 (python3.3)root@server [/]# python3.3 -c "import MySQLdb" Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'MySQLdb' 

对于多个Python版本,请使用virtualenvpip来pipe理模块。

所以你可以创build一个具有特定Python版本和模块的虚拟环境。

 easy_install pip pip install virtualenv virtualenvwrapper 

所以当创build一个特定的Python版本的新环境

 mkvirtualenv nameit -p python3.3 

如果有任何依赖python可以,只要这样做:

 wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz 

从档案中提取文件并进入其path:

 tar -xvf setuptools-1.4.2.tar.gz cd setuptools-1.4.2 

然后安装使用:

 python3.3 setup.py install 

你可以做这最后一步在这个Python版本上安装模块,只要下载它并运行python3.3.5安装程序安装,但我build议你使用virtualenv导致其简单的模式pipe理不同的python版本及其模块。

要正确安装virtualenv没有太多麻烦,请按照下列步骤操作

我不确定早期版本,但在CentOS 6.5中,您可以安装CentOS Software Collections Library回购。 这使您可以访问某些工具的更新版本,而Python 3.3就是其中之一。

你可以在这里find关于SCL的一般信息。

您可以安装SCL回购

 yum install centos-release-SCL 

然后你可以安装python 3.3

 yum install python33 

SCL的文档在这里 。

解:

为了解决这个问题,我用指定的python(python 3.3)创build了一个新的virtualenv,并且使用了正确的安装程序(easy_install-3.3,它显然是特定于python版本的)来添加模块。 正如pip(pip3.3)的修正版本所证实的那样,它现在似乎正在工作

 root@server [~] easy_install pip root@server [~] pip install virtualenv virtualenvwrapper root@server [~] virtualenv --python=/usr/local/bin/python3.3 py3 root@server [~] . /root/py3/bin/activate (py3)root@server [~] easy_install-3.3 numpy (py3)root@server [~] easy_install-3.3 scipy (py3)root@server [~] easy_install-3.3 pandas (py3)root@server [~] easy_install-3.3 scikit-learn (py3)root@server [~] easy_install-3.3 PyMySQL (py3)root@server [~]# pip3.3 freeze PyMySQL==0.6.2 numpy==1.8.1 pandas==0.14.0 pexpect==3.2 pyinotify==0.9.4 python-dateutil==2.2 pytz==2014.4 scikit-learn==0.15.0b1 scipy==0.14.0 scpy==1.1.4 six==1.6.1 

我的脚本现在运行在我的虚拟环境中。