python和其他需要openssl的包如何找到openssl库?

2024-09-30 18:15:36 发布

您现在位置:Python中文网/ 问答频道 /正文

背景:

  • MacOS 10.14.6版
  • 我使用名为asdf-vm的版本管理器来管理python版本,就像pyenv一样。你知道吗

我已经安装了python3.7.2,我遇到了一个错误The Python ssl extension was not compiled. Missing the OpenSSL lib?这是使用pyenv的人的一个常见错误,所以有一个wiki解释了如何修复它。简而言之,我需要添加环境变量:

CFLAGS="-I$(brew --prefix openssl)/include"
LDFLAGS="-L$(brew --prefix openssl)/lib"

最近我安装了python3.7.5而没有envs,奇怪的是ssl错误丢失了。然后我尝试安装psycopg2,出现了一个错误:

...
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DPSYCOPG_VERSION=2.8.4 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=110002 -DHAVE_LO64=1 -I/Users/guojiaqi/projects/learn-some/learn-some-venv/python3.7.5/.venv/include -I/Users/guojiaqi/.asdf/installs/python/3.7.5/include/python3.7m -I. -I/usr/local/Cellar/postgresql/11.2/include -I/usr/local/Cellar/postgresql/11.2/include/server -c psycopg/typecast.c -o build/temp.macosx-10.14-x86_64-3.7/psycopg/typecast.o
    clang -bundle -undefined dynamic_lookup -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/guojiaqi/.asdf/installs/python/3.7.5/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/guojiaqi/.asdf/installs/python/3.7.5/lib build/temp.macosx-10.14-x86_64-3.7/psycopg/psycopgmodule.o build/temp.macosx-10.14-x86_64-3.7/psycopg/green.o build/temp.macosx-10.14-x86_64-3.7/psycopg/pqpath.o build/temp.macosx-10.14-x86_64-3.7/psycopg/utils.o build/temp.macosx-10.14-x86_64-3.7/psycopg/bytes_format.o build/temp.macosx-10.14-x86_64-3.7/psycopg/libpq_support.o build/temp.macosx-10.14-x86_64-3.7/psycopg/win32_support.o build/temp.macosx-10.14-x86_64-3.7/psycopg/solaris_support.o build/temp.macosx-10.14-x86_64-3.7/psycopg/connection_int.o build/temp.macosx-10.14-x86_64-3.7/psycopg/connection_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/cursor_int.o build/temp.macosx-10.14-x86_64-3.7/psycopg/cursor_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/column_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/replication_connection_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/replication_cursor_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/replication_message_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/diagnostics_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/error_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/conninfo_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/lobject_int.o build/temp.macosx-10.14-x86_64-3.7/psycopg/lobject_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/notify_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/xid_type.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_asis.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_binary.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_datetime.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_list.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_pboolean.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_pdecimal.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_pint.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_pfloat.o build/temp.macosx-10.14-x86_64-3.7/psycopg/adapter_qstring.o build/temp.macosx-10.14-x86_64-3.7/psycopg/microprotocols.o build/temp.macosx-10.14-x86_64-3.7/psycopg/microprotocols_proto.o build/temp.macosx-10.14-x86_64-3.7/psycopg/typecast.o -L/usr/local/lib -lpq -lssl -lcrypto -o build/lib.macosx-10.14-x86_64-3.7/psycopg2/_psycopg.cpython-37m-darwin.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
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Users/guojiaqi/projects/learn-some/learn-some-venv/python3.7.5/.venv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/3j/m6lz_k3s1x7fbr3vpkg9zl8h0000gn/T/pip-install-7e6ib_7r/psycopg2/setup.py'"'"'; __file__='"'"'/private/var/folders/3j/m6lz_k3s1x7fbr3vpkg9zl8h0000gn/T/pip-install-7e6ib_7r/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/3j/m6lz_k3s1x7fbr3vpkg9zl8h0000gn/T/pip-record-mex58yh1/install-record.txt --single-version-externally-managed --compile --install-headers /Users/guojiaqi/projects/learn-some/learn-some-venv/python3.7.5/.venv/include/site/python3.7/psycopg2 Check the logs for full command output.

然后我用上面的envs重新安装了python3.7.5,并尝试安装psycopg2,安装成功了!你知道吗

python和其他需要openssl的包如何找到openssl库?引擎盖下发生了什么?你知道吗


Tags: buildadapterincludelibusrlocaltypelearn