una mysqldb insertar datos conectar con como bases abrir python mysql macos

insertar - ¿Cómo instalar MySQLdb(biblioteca de acceso a datos de Python en MySQL) en Mac OS X?



mysqldb python 3 (12)

Soy un novato de Python, pero acabo de pasar un día trabajando en cómo conseguir que MySQLdb funcione correctamente, y el universo de acuerdo con google incluye numerosas referencias a lo que es un PITA, y un número desorbitado de guías que parecen ser anticuado. Dado que este sitio tiene la intención de abordar este tipo de problemas, y sé que voy a necesitar una referencia a la solución en el futuro, voy a hacer la pregunta, dar mi respuesta y ver qué más flota en el superficie.

¿Entonces la pregunta es cómo hacer que MySQLdb funcione en Mac OS X?


Acabo de tener este problema (¡otra vez!) Después de obtener una nueva caja de León.

La mejor solución que he encontrado (aún no es 100% óptima, pero funciona):

puede obtenerlo descargando XCode / Dev Tools de Apple - esta es una gran descarga -

... pero en su lugar, recomiendo este github que tiene lo que necesita (y no tiene XCode): https://github.com/kennethreitz/osx-gcc-installer

Descargué su PKG precompilado para lion, https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg

  • asegúrese de haber descargado una versión de 64 bits de la comunidad MYSQL. (La instalación de DMG es una ruta fácil) http://dev.mysql.com/downloads/mysql/

  • Establezca rutas de la siguiente manera:

    PATH de exportación = $ PATH: / usr / local / mysql-XXXX

    exportar DYLD_LIBRARY_PATH = / usr / local / mysql / lib /

    exportar ARCHFLAGS = ''- arch x86_64''

TENGA EN CUENTA QUE:

1 en mysql-XXXX arriba, XXX es la versión específica que descargó. (Probablemente / usr / local / mysql / también funcionaría, ya que es probable que sea un alias del mismo, pero no pretenderé conocer su configuración)

2 Lo he visto sugiriendo que ARCHFLAGS se establezca en ''-arch i386 -arch x86_64'' pero al especificar solo x86_64 pareció funcionar mejor para mí. (Puedo pensar en algunas razones para esto, pero no son estrictamente relevantes).

  • ¡Instala la bestia!

    easy_install MySQL-python

  • ÚLTIMO PASO:

¡Añade de forma permanente DYLD_LIBRARY_PATH!

Puedes agregarlo a tu bash_profile o similar. Este fue el paso que me faltaba, sin el cual mi sistema siguió insistiendo en varios errores para encontrar _mysql.so y demás.

exportar DYLD_LIBRARY_PATH = / usr / local / mysql / lib /

@ richard-boardman, acaba de notar su solución de enlace suave, que en realidad puede estar haciendo lo mismo que mi solución PATH ... amigos, lo que sea que funcione mejor para usted.

La mejor referencia: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/


Aquí está la historia de mi vaga experiencia con este problema. Me encantaría verlo editado o generalizado si tienes una mejor experiencia sobre el tema ... aplica un poco de esa magia SO.

Nota: Los comentarios en el siguiente párrafo se aplicaron a Snow Leopard, pero no a Lion, que parece requerir MySQL de 64 bits.

En primer lugar, el autor (¿todavía?) De MySQLdb dice here que uno de los problemas más perniciosos es que OS X viene con una versión de Python de 32 bits, pero la mayoría de los medios (yo incluido) probablemente salten para instalar la versión de 64 bits de MySQL Mala jugada ... elimine la versión de 64 bits si la ha instalado (las instrucciones sobre esta tarea complicada están disponibles en SO here ), luego descargue e instale la versión de 32 bits (paquete here )

Hay numerosos pasos por pasos sobre cómo construir e instalar las bibliotecas MySQLdb. A menudo tienen diferencias sutiles. This pareció el más popular y proporcionó la solución de trabajo. Lo he reproducido con un par de ediciones a continuación

Paso 0: antes de comenzar, supongo que tienes MySQL, Python y GCC instalados en el mac.

Paso 1: descargue el último MySQLdb de SourceForge.

Paso 2: extrae tu paquete descargado:

tar xzvf MySQL-python-1.2.2.tar.gz

Paso 3: dentro de la carpeta, limpia el paquete:

sudo python setup.py clean

PAREJA DE PASOS EXTRA, (de este comentario )

Paso 3b: elimine todo lo que se encuentra en su directorio MySQL-python-1.2.2 / build / *; no confíe en que "python setup.py clean" lo haga por usted

Paso 3c: eliminar el huevo en Users / $ USER / .python-eggs

Paso 4: Edición requerida originalmente _mysql.c, pero ahora ya NO ES NECESARIA. La comunidad MySQLdb parece haber solucionado este error ahora.

Paso 5: cree un enlace simbólico bajo lib para apuntar a un subdirectorio llamado mysql. Aquí es donde busca durante la compilación.

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

Paso 6: edite setup_posix.py y cambie lo siguiente

mysql_config.path = "mysql_config"

a

mysql_config.path = "/ usr / local / mysql / bin / mysql_config"

Paso 7: en el mismo directorio, reconstruya su paquete (ignore las advertencias que lo acompañan)

sudo python setup.py build

Paso 8: instala el paquete y listo.

sudo python setup.py install

Paso 9: prueba si está funcionando. Funciona si puedes importar MySQLdb.

python

>>> import MySQLdb

Paso 10: si al tratar de importar recibe un error quejándose de que la Library not loaded: libmysqlclient.18.dylib termina con: Reason: image not found , necesita crear un enlace simbólico adicional que sea:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Debería poder import MySQLdb sin ningún error.

Un último inconveniente es que si inicias Python desde el directorio de compilación obtendrás este error:

/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3: UserWarning: Module _mysql ya se importó desde /Library/Python/2.5/ site-packages / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc, pero se está agregando XXXX / MySQL-python-1.2.3c1 a sys.path

Esto es bastante fácil para Google, pero para ahorrarle el problema, terminará here (o tal vez no ... no es una URL especialmente a prueba de futuro) y descubrirá que necesita cd .. un cd .. fuera del directorio de compilación y el error debería desaparecer

Como escribí en la parte superior, me encantaría ver esta respuesta generalizada, ya que hay muchas otras experiencias específicas de este horrible problema. Edita o proporciona tu propia mejor respuesta.


Aquí hay otro paso que tuve que pasar, después de recibir un error al completar el Paso 9:

ImportError: dlopen(/Users/rick/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Referencia: ¡Gracias! http://ageekstory.blogspot.com/2011_04_01_archive.html


Como se indica en Instalar MySQL-python en mac :

pip uninstall MySQL-python brew install mysql pip install MySQL-python

Entonces pruébalo:

python -c "import MySQLdb"


En macos Sierra este trabajo para mí, donde python es administrado por anaconda:

anaconda search -t conda mysql-python

anaconda show CEFCA/mysql-python

conda install --channel https://conda.anaconda.org/CEFCA mysql-python

El para usar con SQLAlchemy:

Python 2.7.13 | Continuum Analytics, Inc. | (predeterminado, 20 de diciembre de 2016, 23:05:08) [GCC 4.2.1 Apple LLVM 6.0 (clang-600.0.57)] compatible en darwin Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más información información. Anaconda es traído a usted por Continuum Analytics. Por favor visita: http://continuum.io/thanks y https://anaconda.org

>>> de sqlalchemy import *

>>> dbengine = create_engine (''mysql: // ....'')


Instalar pip:

sudo easy_install pip

Instalar brebaje

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Instalar mysql:

brew install mysql

Instalar MySQLdb

sudo pip install MySQL-python

Si tiene problemas de compilación, intente editar el archivo ~ / .profile como en una de las respuestas aquí.


Instale mysql y python a través de Macports Los porteadores han hecho todo el trabajo difícil.

sudo port install py26-mysql sudo port install mysql5-server

debería instalar lo que necesita (Consulte Desbordamiento de pila para obtener comentarios sobre el servidor mysql )

Si solo necesita conectarse a mysql y no ejecutar un servidor, entonces la primera línea es suficiente.

Macports ahora (principios de 2013) proporcionará descargas binarias para combinaciones comunes de sistemas operativos una arquitectura ejecutable, para otros (y si lo solicita) se compilará desde la fuente.

En general, macports (o fink) ayudan cuando hay bibliotecas complejas, etc. que necesitan ser instaladas.

Python solo código y si se pueden configurar simples dependencias C a través de setuptools, etc., pero comienza a volverse complejo si mezclas los dos.


O simple intento:

> sudo easy_install MySQL-python

Si da un error como el siguiente:

EnvironmentError: mysql_config no encontrado

, entonces solo ejecuta esto

> export PATH=$PATH:/usr/local/mysql/bin


Podría intentar usar el pymysql puro-python:

sudo easy_install pymysql

(O use pip si lo tiene instalado.) Luego, agregue esto antes de import MySQLdb en su código:

try: import pymysql pymysql.install_as_MySQLdb() except ImportError: pass


Si está utilizando MySQL de 64 bits, usar ARCHFLAGS para especificar su arquitectura de CPU al compilar bibliotecas de mysql-python haría el truco:

ARCHFLAGS=''-arch x86_64'' python setup.py build ARCHFLAGS=''-arch x86_64'' python setup.py install


Una forma rápida y fácil para Mac OS X 10.8 (Mountain Lion), 10.9 (Mavericks), 10.10 (Yosemite) y 10.11 (El Capitan):

Supongo que tiene instalado XCode, sus herramientas de línea de comandos , Python y MySQL.

  1. Instalar PIP:

    sudo easy_install pip

  2. Editar ~ / .profile: ( Puede que no sea necesario en Mac OS X 10.10)

    nano ~/.profile

    Copie y pegue las siguientes dos líneas

    export PATH=/usr/local/mysql/bin:$PATH export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

    Guardar y Salir. Afterwords ejecuta el siguiente comando:

    source ~/.profile

  3. Instalar MySQLdb

    sudo pip install MySQL-python

    Para probar si todo funciona bien solo intente

    python -c "import MySQLdb"

Funcionó como un encanto para mí. Espero que ayude.

Si encuentra un error con respecto a una biblioteca faltante: Biblioteca no cargada: libmysqlclient.18.dylib, entonces tiene que enlazarlo simbólicamente a /usr/lib así:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib


export PATH=$PATH:/usr/local/mysql/bin/

debería solucionar el problema, ya que el sistema no puede encontrar el archivo mysql_config.