安装mysql-python时出错:找不到-lssl的库

时间:2016-11-14 11:21:10

标签: pip virtualenv homebrew mysql-python

我在安装mysql-python时遇到问题。创建了一个新的virtualenv,并在安装mysql-python时...这里是错误消息:

(env)$ pip install mysql-python
Collecting mysql-python
...

clang -bundle -undefined dynamic_lookup -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk build/temp.macosx-10.12-x86_64-2.7/_mysql.o -L/usr /local/Cellar/mysql/5.7.16/lib -lmysqlclient -lssl -lcrypto -o build/lib.macosx-10.12-x86_64-2.7/_mysql.so
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1

使用自制软件,我安装了:

  • libressl
  • OpenSSL的
  • openssl@1.1
  • MySQL的

已经尝试brew link,但brew拒绝这样做。

操作系统是MacOS Sierra。

有人可以帮忙吗?谢谢!

10 个答案:

答案 0 :(得分:13)

您可以显式设置ssl库路径。

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

答案 1 :(得分:11)

通过以下步骤解决了这个问题:

brew uninstall mysql
brew install mysql-connector-c
pip install mysql-python
brew unlink mysql-connector-c
brew install mysql

https://stackoverflow.com/a/25920020/576192

找到答案

不确定这是否正确,但这就是我设法解决它的方法。

答案 2 :(得分:7)

我终于能够通过

来修复它了

xcode-select --install

我确信我已经这样做了......但显然我没有。绝对值得一试!

答案 3 :(得分:5)

我尝试更新Xcode的CLT,卸载mysql,检查mysql_config等,但是没有运气。

我发现运行brew info ssl显示:

...

For compilers to find openssl you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl/include"

...

先运行这两个命令,再运行pip install(对于我来说,安装mysqlclient时)对我有用。

答案 4 :(得分:3)

我可以通过运行以下错误来解决该问题:

    if($_SERVER["REQUEST_METHOD"] === "POST"){
        if(isset($_POST['apprentice_name']))  
        {  
            $name = $_POST['apprentice_name'];   
            $query = "INSERT INTO monday_records(apprentice_name, active) VALUES ('$name', 1)";  
            $result = mysqli_query($con,$query);
            header('location: index.php');
            die();
        }  

    }

答案 5 :(得分:2)

如果您要安装mysql-python,建议您安装mysqlclient。这两个模块的作者是相同的。到目前为止,作者们都转而继续保持mysqlclientmysqlclient支持Python 2和Python 3.您可以使用相同的代码,例如mysql-python。 Blew是我的安装解决方案。

$ brew info openssl
$ brew unlink mysql-connector-c
$ brew install mysql
$ brew link --overwrite mysql-connector-c
$ pip install mysqlclient

如果pip install mysqlclient之前出现错误。请根据methane's answer进行修复。 然后再次运行pip install mysqlclient

答案 6 :(得分:1)

通过这样做为我工作

$ brew uninstall mysql
$ brew install mysql-connector-c
$ brew unlink mysql-connector-c
$ brew install mysql
$ pip install mysql-python

上面的配方略有改动版本(注意:pip install最后!)

答案 7 :(得分:1)

在Mac上,对于我来说,运行此命令可以解决问题

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

实际上,我们需要设置ssl库路径来解决此问题。

答案 8 :(得分:0)

或者从MySQL开发站点下载并安装.dmg:https://dev.mysql.com/downloads/file/?id=467834

答案 9 :(得分:0)

对于那些使用Brew安装MySQL v5.7的人

卸载mysql-connector-c

$ brew uninstall mysql-connector-c

安装特定版本,很可能需要卸载其他已安装版本

$ brew install mysql@5.7

您将需要将其添加到PATH中,因为这是“仅允许插入”的公式,因此在安装后会打印出来

$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc

用适当的文件替换~/.zshrc

安装mysql-connector-c

$ brew install mysql-connector-c

检查其是否正确安装

$ which mysql
# /usr/local/opt/mysql@5.7/bin/mysql

$ mysql_config
# Usage: /usr/local/opt/mysql@5.7/bin/mysql_config [OPTIONS]
Compiler: Clang 10.0.0.10001145
Options:
        --cflags         [-I/usr/local/opt/mysql@5.7/include/mysql ]
        --cxxflags       [-I/usr/local/opt/mysql@5.7/include/mysql ]
        --include        [-I/usr/local/opt/mysql@5.7/include/mysql]
        --libs           [-L/usr/local/opt/mysql@5.7/lib -lmysqlclient -lssl -lcrypto]
        --libs_r         [-L/usr/local/opt/mysql@5.7/lib -lmysqlclient -lssl -lcrypto]
        --plugindir      [/usr/local/opt/mysql@5.7/lib/plugin]
        --socket         [/tmp/mysql.sock]
        --port           [0]
        --version        [5.7.24]
        --libmysqld-libs [-L/usr/local/opt/mysql@5.7/lib -lmysqld -lssl -lcrypto]
        --variable=VAR   VAR is one of:
                pkgincludedir [/usr/local/opt/mysql@5.7/include/mysql]
                pkglibdir     [/usr/local/opt/mysql@5.7/lib]
                plugindir     [/usr/local/opt/mysql@5.7/lib/plugin]

现在安装mysqlclient

$ pip install mysqlclient