Pip &引用;找不到-lssl;找不到-lcrypto";在安装mysql-python时?
我正在努力在安装了MariaDB 10的Ubuntu14.04上的系统范围内或在venv中安装mysql python pip。还尝试了MariaDB 5.5,得到了相同的错误。我没有安装香草mysql服务器的问题 我已通过apt get安装了以下内容:Pip &引用;找不到-lssl;找不到-lcrypto";在安装mysql-python时?,pip,virtualenv,mysql-python,Pip,Virtualenv,Mysql Python,我正在努力在安装了MariaDB 10的Ubuntu14.04上的系统范围内或在venv中安装mysql python pip。还尝试了MariaDB 5.5,得到了相同的错误。我没有安装香草mysql服务器的问题 我已通过apt get安装了以下内容: 建立必要的 python开发人员 libmariadbclient dev(这是libmysqlclient dev的MariaDB替代品) python mysqldb 最初我认为将其安装到venv中是一个问题,但后来我注意到mysql
- 建立必要的
- python开发人员
- libmariadbclient dev(这是libmysqlclient dev的MariaDB替代品)
- python mysqldb
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
我和你做了同样的事情,但仍然无法重现这个问题:
(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...
但是,你有两条信息我没有,即:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
如果您执行了ld-lcrypto--verbose
或ld-lssl--verbose
将不会产生以下结果:
➜ 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
因此,要解决这个问题,只需确保您安装了提供这两个库的
libssl dev
包。我在MacOS上遇到了类似的错误,但没有“/usr/bin/ld:cannot find-lssl”
通过以下步骤解决:
第一步。确保已使用自制软件安装openssl
brew install openssl
第二步。在终端中:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
对于Linux,您还可以尝试安装缺少的库并将其添加到库路径。对于CentOS:
sudo yum install openssl-devel
对于Debian 9.x:
apt安装libssl dev
对于CentOS 6yum安装openssl-devel
,然后pip安装MySQL-python
执行此操作。有针对macOS的解决方案吗?它没有libssl-dev
包,而安装openssl
包(被认为是libssl
的mac等价物)也没有任何帮助。@saran3h