当前位置: 首页 > 知识库问答 >
问题:

安装psycopg2时出错,找不到-lssl的库

微生令雪
2023-03-14

我奔跑

sudo pip install psycopg2

我得到了一组输出,看起来像:

cc -DNDEBUG -g -fwrapv -Os .....
.....
cc -DNDEBUG -g -fwrapv -Os .....
.....

最后它说:

ld: library not found for -lssl

clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: command 'cc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/bz/pvj1g9xj16d10pjjgbrfl3fw0000gn/T/pip_build_root/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/bz/pvj1g9xj16d10pjjgbrfl3fw0000gn/T/pip-uE3thn-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/var/folders/bz/pvj1g9xj16d10pjjgbrfl3fw0000gn/T/pip_build_root/psycopg2
Storing debug log for failure in /Users/Tyler/Library/Logs/pip.log

运行easy_install或从源代码处安装都会在最后给我带来相同的错误(关于-lssl找不到库的部分)。

运行brew安装(或升级)openssl会产生以下结果

$ brew upgrade openssl
Error: openssl-1.0.1h already installed

有人能帮我吗?

共有3个答案

周涵畅
2023-03-14

使用brew link openssl是危险的,因为它可能会通过符号化Homebrew的OpenSSL头来搞乱您的系统,而实际的库仍然是系统提供的库,从而导致各种问题。Homebrew实际上警告你,如果你尝试的话(其他答案表明链接无论如何都不会解决问题):

$ brew link openssl
Warning: Refusing to link: openssl
Linking keg-only openssl means you may end up linking against the insecure,
deprecated system OpenSSL while using the headers from Homebrew's openssl.
Instead, pass the full include/library paths to your compiler e.g.:
  -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

以下是您需要使用的pip命令:

$ pip install -r requirements.txt --global-option=build_ext --global-option="-I/usr/local/opt/openssl/include" --global-option="-L/usr/local/opt/openssl/lib"

对于pipenv,我不知道您可以传递给它的任何命令行属性,但是您可以在运行pipenv安装之前将上述路径导出为环境变量:

$ export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include"
$ pipenv install

司英飙
2023-03-14

我从brew安装了OpenSSL(brew安装OpenSSL

以下几点对我很有用:

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
pip install psycopg2
彭嘉赐
2023-03-14

对于在macOS Sierra 10.12(或更高版本,最有可能)上寻找此解决方案的任何人:我通过安装命令行工具修复了此问题:

xcode-select --install

之后,pip安装psycopg2应该可以正常工作。

如果没有,你也可以尝试链接brew的openssl:

env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2

通过brew安装openssl。注意brew链接openssl--force不再工作了:

$ brew link openssl --force                                                                                 17.5s
Warning: Refusing to link: openssl
Linking keg-only openssl means you may end up linking against the insecure,
deprecated system OpenSSL while using the headers from Homebrew's openssl.
Instead, pass the full include/library paths to your compiler e.g.:
  -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

正如@macho在下面指出的,如果这仍然不起作用,您可能需要使用pip的--no cache选项,例如。

env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2

请记住相应地调整这些路径,例如,如果您在ARM/Apple M1 Mac上构建(因为Homebrew安装在/pt/Homebrew/);命令如下:

env LDFLAGS="-I/opt/homebrew/opt/openssl/include -L/opt/homebrew/opt/openssl/lib" pip --no-cache install psycopg2
 类似资料:
  • 问题内容: 我在MacOS上运行mysql@8.x版本,我已经用brew安装了mysql和mysql-connector-o。目前与mysql的brew链接。 在我的python3虚拟环境中运行Django项目时,我收到以下错误- 并在使用pip安装mysqlclient时,出现以下错误 问题答案: 正如jordanm所指出的,问题恰恰与缺少的openssl库有关,为此,我按照以下步骤修复了我的问

  • 我尝试使用这个命令< code>docker build -t myimage在django中运行docker。现在docker文件尝试运行< code > RUN pip install-r/app/requirements . txt-no-cache-dir ,但是当ot到达< code >下载psycopg2-2.9.3.tar.gz(380 kB)部分时,它会抛出错误。 注意:我的req

  • 我也会在安装Gunicorn时出错。我在这里遵循了这个例子,但什么也没有。我的虚拟环境是使用标志创建的。我使用Ubuntu13.10和希腊环境。也许是那个?

  • 问题内容: 我正在尝试将Postgres与Docker一起构建Flask应用程序。我想连接到Postgres的AWS RDS实例,但是将Docker用于我的Flask应用程序。但是,在尝试设置时会遇到错误,因为找不到。这是错误: 这是我的: 许多其他问题在本地似乎也有类似的问题,但没有一个涉及使用Docker。 这似乎是一个Docker问题,因为我可以设置本地虚拟环境,并且安装正常,因为我在本地安

  • 问题内容: 我正在尝试使用python 3在OSX high sierra上的virtrualenv中安装mysqlclient,并得到以下错误: 尝试过但没有用。我已经在同一台计算机上安装了mysql服务器。 问题答案: 升级到osx Mojave和python 3.7.2后,我遇到了同样的问题。这对我有用: 希望能帮助到你。有关更多信息,请参见此处。