Pergunta

Estou tentando configurar o MySQL para funcionar com python 2.7.8 e Sublime Text 3 no OS X 10.9, então instalei o conector MySQL python.Sempre que tento executar "import mysql.connector", recebo "ImportError:Nenhum módulo chamado conector".

Como isso deve ser configurado para que eu possa usar o conector para acessar o MySQL?

Detalhes:

-Sublime é instalado em Aplicativos

-Sublime Text 3 usa python 3 como padrão, então tive que configurar um sistema de compilação python 2.7.Aqui está o meu código para este sistema:

  "cmd": ["/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/bin/python2.7", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python2"

-Python está instalado em

 /usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/bin/python2.7

-O executável MySQL está instalado em

/usr/local/mysql-5.6.19-osx10.7-x86_64/bin

-O conector possui um link simbólico em

/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mysql/connector

e está totalmente instalado em

/usr/local/lib/python2.7/site-packages/mysql/connector

Além disso, adicionei o seguinte a .bash_profile para adicionar os diretórios necessários ao caminho.

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

# trying to get mysql access
PATH = "/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages:${PATH}"
export PATH

Tenho certeza de que estou perdendo algo simples, mas esta é a primeira vez que configuro isso e passei muitas horas pesquisando no Google e tentando descobrir o que estou fazendo de errado.Alguém tem ideia do que preciso alterar para acessar o módulo conector?Desde já, obrigado.

Foi útil?

Solução

Python não usa o shell $PATH variável para localizar módulos importáveis, ela usa uma lista chamada sys.path em Python.Se você executar seu intérprete e imprimir sys.path a partir dele você deve ver que o site-packages diretório já está sendo pesquisado.Você pode solicitar que outros diretórios sejam adicionados ao sys.path antes da execução do programa, adicionando-os ao $PYTHONPATH variável de ambiente shell.

Parece pela estrutura que mysql é um pacote com connector sendo um subpacote, e suponho que você precise colocar o link simbólico um diretório acima (ou seja para o mysql diretório) para pegar o necessário __init__.py isso fará com que ele seja reconhecido como um pacote.

Em geral, é uma boa ideia aprender a usar pip para instalar módulos e pacotes nos chamados ambientes virtuais.permite (por exemplo) que programas diferentes usem versões diferentes do mesmo módulo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top