CentOS (rel6) com o padrão python 2.6, mas separa a instalação 3.3.5

2

Eu tenho um servidor CentOS (rel6) que tinha o python instalado (2.6), mas eu precisava de alguns recursos em 3.3+. Eu instalei o 3.3 em uma pasta separada e criei um link simbólico para executá-lo:

  1. Eu instalei as ferramentas de configuração: yum instala o python-setuptools
  2. Eu instalei um módulo necessário "pandas" easy_install pandas
  3. Eu executei meu script pyton, que encontrou um erro que exigia que eu usasse uma versão mais recente
  4. Eu baixei e instalei o Python 3.3.5 em sua própria pasta para não substituir meu python padrão
    • wget link
    • tar xJf ./Python-3.3.5.tar.xz
    • cd ./Python-3.3.5
    • ./ configure --prefix = / opt / python
    • fazer
    • faça a instalação
  5. Feito link simbólico para permitir que eu execute este novo python:
    • ln -s /opt/python3.3/bin/python3.3 ~ / bin / py

O problema é que quando eu executo o script python com meu novo alias py, ele não tem todos os addons necessários (explicitamente MySQLdb) que a instalação padrão faz.

Como faço para instalar o módulo MySQLdb, ou qualquer outro, para que seja acessível ou utilizável para a nova instalação do Python 3.3.5? Ou existe uma maneira de disponibilizar os módulos atuais da versão 2.6 para a versão 3.3.5?

Atualização:

Meu ambiente virtual tem o seguinte instalado

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

Mas quando eu executo a importação, ainda falha

(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'
    
por Silvertiger 06.06.2014 / 16:03

3 respostas

2

SOLUÇÃO:

Para resolver esse problema, criei um virtualenv atualizado com um python (python 3.3) especificado e usei o instalador correto (easy_install-3.3, aparentemente específico da versão do Python) para adicionar os módulos. Como verificado pela versão de correção do pip (pip3.3), parece estar funcionando agora

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

Meu script agora é executado como esperado no meu ambiente virtual.

    
por 08.06.2014 / 03:04
3

Para várias versões do Python, use virtualenv e pip para gerenciar os módulos.

Assim, você pode criar um ambiente virtual com versões e módulos específicos do Python.

easy_install pip
pip install virtualenv virtualenvwrapper 

Então, ao criar um novo ambiente com uma versão específica do python

mkvirtualenv nameit -p python3.3

Se qualquer dependência python teria, basta fazer isso:

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

Extraia os arquivos do arquivo e siga seu caminho:

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

Em seguida, instale usando:

python3.3 setup.py install

Você pode fazer esta última etapa para instalar módulos nesta versão do Python que você tem, apenas baixando e executando a instalação do python3.3.5, mas eu recomendo que você use o virtualenv porque seu modo fácil de gerenciar diferentes versões do Python e seus módulos.

Para instalar o virtualenv adequadamente sem muitos problemas, siga estas etapas

    
por 06.06.2014 / 18:50
2

Não tenho certeza sobre versões anteriores, mas com o CentOS 6.5 você pode instalar o repositório da Biblioteca de Coleções do CentOS Software. Isto dá-lhe acesso a novas versões de algumas ferramentas e o python 3.3 é um deles.

Você pode encontrar informações gerais sobre o SCL aqui .

Você pode instalar o repositório SCL com

yum install centos-release-SCL

Então você pode instalar o python 3.3 com

yum install python33

A documentação para SCL é aqui .

    
por 06.06.2014 / 16:17