para mysqldb mysqlclient descargar pip virtualenv mysql-python mariadb

pip - mysqldb - "No se puede encontrar-lssl; no puedo encontrar-lcrypto "al instalar mysql-python usando la biblioteca mariaDB



pip install mysqlclient (4)

Estoy luchando para instalar el mysql-python pip en todo el sistema o en un servidor en Ubuntu 14.04 con MariaDB 10 instalado. También probé con MariaDB 5.5 y obtuve el mismo error. No tengo este problema con el servidor mysql de vainilla instalado.

Tengo lo siguiente instalado a través de apt-get:

  • esencial para la construcción
  • python-dev
  • libmariadbclient-dev (que es el reemplazo MariaDB para libmysqlclient-dev)
  • python-mysqldb

Originalmente, pensé que esto era un problema al instalar esto en un sistema de eventos, pero luego noté que mysql-python tampoco se instalaría en todo el sistema. Abajo están los cmds que solía instalar en un venv.

virtualenv venv . venv/bin/activate pip install mysql-python==1.2.5 In file included from _mysql.c:44:0: /usr/include/mysql/my_config.h:439:0: warning: "HAVE_WCSCOLL" redefined [enabled by default] #define HAVE_WCSCOLL ^ In file included from /usr/include/python2.7/pyconfig.h:3:0, from /usr/include/python2.7/Python.h:8, from _mysql.c:29: /usr/include/x86_64-linux-gnu/python2.7/pyconfig.h:911:0: note: this is the location of the previous definition #define HAVE_WCSCOLL 1 ^x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmariadbclient_r -lpthread -lz -lm -lssl -lcrypto -ldl -o build/lib.linux-x86_64-2.7/_mysql.so /usr/bin/ld: cannot find -lssl /usr/bin/ld: cannot find -lcrypto collect2: error: ld returned 1 exit status error: command ''x86_64-linux-gnu-gcc'' failed with exit status 1 ---------------------------------------- Cleaning up... Command /root/env/bin/python -c "import setuptools, tokenize;__file__=''/root/env/build/mysql- python/setup.py'';exec(compile(getattr(tokenize, ''open'', open)(__file__).read().replace(''/r/n'', ''/n''), __file__, ''exec''))" install --record /tmp/pip-EyhO2v-record/install-record.txt --single-version-externally-managed --compile --install-headers /root/env/include/site/python2.7 failed with error code 1 in /root/env/build/mysql-python Storing debug log for failure in /root/.pip/pip.log


Hice lo mismo que tú, y todavía no pude reproducir el problema:

(venv)➜ src pip install mysql-python==1.2.5 Downloading/unpacking mysql-python==1.2.5 Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded Running setup.py (path:/home/braiam/src/venv/build/mysql-python/setup.py) egg_info for package mysql-python Installing collected packages: mysql-python Running setup.py install for mysql-python building ''_mysql'' extension x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Dversion_info=(1,2,5,''final'',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing In file included from _mysql.c:44:0: /usr/include/mysql/my_config.h:439:0: warning: "HAVE_WCSCOLL" redefined #define HAVE_WCSCOLL ^ In file included from /usr/include/python2.7/pyconfig.h:3:0, from /usr/include/python2.7/Python.h:8, from _mysql.c:29: /usr/include/x86_64-linux-gnu/python2.7/pyconfig.h:911:0: note: this is the location of the previous definition #define HAVE_WCSCOLL 1 ^ x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmariadbclient_r -lpthread -lz -lm -lssl -lcrypto -ldl -o build/lib.linux-x86_64-2.7/_mysql.so Successfully installed mysql-python Cleaning up...

Pero, hay dos mensajes que tienes que yo no, a saber:

/usr/bin/ld: cannot find -lssl /usr/bin/ld: cannot find -lcrypto

Lo que si hiciera ld -lcrypto --verbose o ld -lssl --verbose no produciría estos resultados:

➜ src ld -lcrypto --verbose | grep succeeded attempt to open //usr/lib/x86_64-linux-gnu/libcrypto.so succeeded ld: warning: cannot find entry symbol _start; not setting start address ➜ src ld -lssl --verbose | grep succeeded attempt to open //usr/lib/x86_64-linux-gnu/libssl.so succeeded ld: warning: cannot find entry symbol _start; not setting start address

Entonces, para solucionar este problema, asegúrese de haber instalado el paquete libssl-dev que proporciona ambas bibliotecas.


Me encuentro con un error similar en MacOS pero no hay "/ usr / bin / ld: no puedo encontrar -lssl" para mí.

Resuelto con los siguientes pasos:

Paso 1. Asegúrate de haber instalado openssl con homebrew.

brew install openssl

Paso 2. En una terminal:

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/

Para Linux, también puede probar yum install la biblioteca que falta y agregarla a LIBRARY_PATH.


Para CentOS:

sudo yum install openssl-devel


Para Debian 9.x:

apt install libssl-dev