psycopg2 설치 오류, -lssl에 대한 라이브러리를 찾을 수 없음


127

난 달린다

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 install (또는 업그레이드) openssl을 실행하면 아래와 같은 결과가 나옵니다.

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

누구든지 나를 도울 수 있습니까?


답변:


285

macOS Sierra 10.12 (또는 그 이상)에서 이에 대한 솔루션을 찾는 모든 사람 : 명령 줄 도구를 설치하여이 문제를 해결했습니다.

xcode-select --install

그 후에 pip install psycopg2작동합니다.

그렇지 않은 경우 brew의 openssl에 대해 링크를 시도 할 수도 있습니다.

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

brew를 통해 설치된 openssl과 함께. (가) 있습니다 brew link 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가 여전히 작동하지 않으면 아래에서 지적했듯이 --no-cachepip 옵션 을 사용해야 할 수도 있습니다.

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

5
실제로 xcode-select --install충분할 수 있습니다 ssl. 제공된 시스템을 사용해야합니다 . 위의 댓글을 업데이트하겠습니다.
sas

13
xcode-select install은 시스템 파이썬에 충분합니다. 그러나 가상 환경에서는 작동하지 않습니다.
Andrew Martin

3
방금 macOS Sierra 10.12를 얻었고 pip install psycopg2방금 동일한 오류 메시지를 받았습니다 .'ld : library not found for -lssl '. xcode-select --install문제를 해결했습니다.
webtweakers

4
xcode-select --install또한 가상 환경을위한, 나를 위해 시에라의 문제를 해결
Danra

5
pip의 --no-cache 옵션을 사용해야 할 수도 있습니다. 예env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2
machow

59

Brew ( brew install openssl) 에서 OpenSSL을 설치했습니다.

다음은 나를 위해 일했습니다.

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

26

실행할 때 brew link openssl다음 메시지가 나타납니다.

$ 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"

10

MacOS Catalina 10.15.4에서 다음은 나를 위해 일한 유일한 명령이었습니다.

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

Mojave에서도 작업했습니다. 감사합니다!
sb9

당신은 내 시간을 절약했습니다.
신 우방

9

나를 위해 일한 것은 openssl을 연결하는 명령에 제공된 힌트였습니다.

$ brew link openssl
Warning: Refusing to link macOS-provided software: openssl
If you need to have openssl first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc

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"

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

$ pip install psycopg2
Collecting psycopg2
  Using cached https://files.pythonhosted.org/packages/23/7e/93c325482c328619870b6cd09370f6dbe1148283daca65115cd63642e60f/psycopg2-2.8.2.tar.gz
Installing collected packages: psycopg2
  Running setup.py install for psycopg2 ... done
Successfully installed psycopg2-2.8.2

대부분의 사람들은 아마도 zsh를 사용하지 않을 것입니다. 그러나 어쨌든 저는 echo 'export PATH = "/ usr / local / opt / openssl / bin : $ PATH"'>> ~ / .zshrc없이 문제를 해결하기에 충분했습니다. LDFLAGS 및 CPPFLAGS 환경 변수 변경
Mark Aquino

9

mojave에서 나는 이것을 .bash_profile에 추가했습니다.

export PATH="/usr/local/opt/openssl/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/curl/lib -L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/curl/include -I/user/local/opt/openssl/include"

그런 다음 파이썬 3.7.4 virtualenv에 psycopg 2.8.3을 설치할 수있었습니다.

xcode 및 명령 줄 도구를 다시 설치 한 후.

위의 모든 답변이 도움이되었습니다!


4

이것은 pip가 .NET을 설치할 수없는 새로운 macOs 버전의 문제입니다 cryptography. 내 문제를 해결 한 것은 설치 명령에 env를 제공하는 것입니다.

brew install openssl
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" <YOUR COMMAND HERE>

당신은 대체 할 수 <YOUR COMMAND HERE>와 함께 pip install cryptography, 또는 pip install <SOMETHING THAT REQUIRES cryptography>예를 들어.

이 기사에 대한 크레딧 : macOS Sierra 치명적인 오류 수정 : 'openssl / opensslv.h'또는 'openssl / aes.h'파일을 찾을 수 없음


4

Fish를 사용하여 다음 두 명령으로 Homebrew와 함께 OpenSSL을 설치 한 후이 문제를 해결했습니다.

set -gx LDFLAGS "-L/usr/local/opt/openssl/lib"
set -gx CPPFLAGS "-I/usr/local/opt/openssl/include"

brew info openssl최신 정보를 얻기 위해 사용 합니다.


1

최근에 Virtualenv에 Python 3.7을 설치 한 High Sierra에서이 문제가 발생했습니다.

해결책은 psycopg2의 최신 버전을 사용하는 것입니다. 버전 2.7.7은 작동했지만 2.7.1은 작동하지 않았습니다.


0

같은 작성자의을 psycopg2설치 하는 대신 다음을 설치하십시오 psycopg2-binary.

pip install psycopg2-binary

이 PyPI 패키지에 대한 문서의 내용은 다음과 같습니다.

PyPI에서 psycopg2-binary 패키지를 설치하여 컴파일러 나 외부 라이브러리가 필요하지 않은 독립 실행 형 패키지를 [...] 얻을 수 있습니다.

$ pip install psycopg2-binary

바이너리 패키지는 개발 및 테스트를위한 실용적인 선택이지만 프로덕션에서는 소스에서 빌드 된 패키지를 사용하는 것이 좋습니다.


0

Mojave에서이 문제가 발생했습니다. Mojave는 psycopg2가 설치해야하는 / usr / include 디렉토리를 생성하지 않습니다. 이것은 분명하지 않았습니다. 여기에서 해결책을 찾았습니다. 명령 줄에서 Xcode를 업데이트하는 방법 , 참조 : https://forums.developer.apple.com/thread/104296


추가 참고 사항 : Xcode와 명령 줄 도구가 설치되어 있습니다. xcode-select --install 명령은 xcode-select -p 및 echo $와 같이 이미 설치되어 있음을 보여줍니다. 0을 반환했으며 이는 또한 설치되었음을 나타냅니다. 저는 pyenv 및 pyenv-virtualenv를 사용하고 있으므로 psycopg2를 가상 환경에 설치했습니다.
ProfX


0

conda 환경에서 PyCharm을 실행하여 다음을 사용하여 내 문제를 해결했습니다.

--> conda install psycopg2
The following packages will be UPDATED: ...

...
Proceed ([y]/n)? 
--> y
--> pip3 install psycopg2
Installing collected packages: psycopg2
Running setup.py install for psycopg2 ... done
Successfully installed psycopg2-2.8.4

'''


0

MacPorts를 사용하여 OpenSSL을 설치 했으므로 디렉토리가 Brew의 디렉토리와 다릅니다.

sudo port install openssl

다음을 수행하여 디렉토리를 찾았습니다.

port contents openssl | grep lib
port contents openssl | grep include

그런 다음 변수를 내보냈습니다.

export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include/openssl"

다음을 수행해야 할 수도 있습니다.

xcode-select --install


-4

다음을 사용하여 문제를 해결했습니다.

brew unlink openssl && brew link openssl --force

이것이 제가 이전에 시도한 OpenSSL에서 수행 한 양조 제거 / 업그레이드와 어떻게 다른지 잘 모르겠습니다. 내 가정은 이러한 작업이이 작업을 방해하는 "결함이있는"공유 라이브러리의 일부를 남겼다는 것입니다. 이것은 또한 파이썬 암호화 모듈 설치와 관련된 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.