source

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

nicesource 2023. 5. 9. 22:48
반응형

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

나는 달립니다

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

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

누가 저 좀 도와주실 수 있나요?

macOS Sierra 10.12(또는 이후 버전)에서 이에 대한 솔루션을 찾고 있는 사용자:명령줄 도구를 설치하여 이 문제를 해결했습니다.

xcode-select --install

다음에 그이로후.pip install psycopg2작동해야 합니다.

그렇지 않다면, 당신은 또한 브루의 openssl에 연결을 시도할 수 있습니다.

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

brew를 되어 있습니다.로 고는 다음과 .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-cache예를 들어, pip 옵션.

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

를 들어 ARM/Apple M1 Mac에 설치되어 있으므로) 이러한 경로를 ./opt/homebrew/은 다음과 같습니다.; 명령은 다음과 같습니다.

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

brew)에서(brew(Brew))brew install openssl)

다음 작업이 가능성:

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

용사를 합니다.brew link openssl실제 라이브러리는 시스템에서 제공하는 것으로 유지되는 반면 Homebrew의 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

이조에따다같것있습다니이은음라과언다있▁following▁thes'니습▁here▁this것이가 있습니다.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 install:

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

MacOS Catalina 10.15.4에서는 다음 명령만 사용할 수 있었습니다.

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

MacOS 12 Monterey - M1 칩셋용 솔루션:

xcode-select --install
brew install openssl
echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
echo 'export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/opt/openssl@3/lib/' >> ~/.zshrc

MacOS BigSur용 솔루션(2021년 5월)

저도 비슷한 문제를 겪고 있었습니다.하지만 데스크톱 PC를 걷어차기 전에 MacOS BigSur에서 사용할 수 있는 솔루션을 찾았습니다.

OpenSSL 설치가 손상되었습니다.

brew reinstall openssl

재설치가 완료되면 실행해야 하는 3개의 명령이 실행됩니다.

명령은 다음과 같습니다.

복사만 하지 마십시오.

echo 'export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"

나한테 효과가 있었어요!이것이 당신에게도 효과가 있다는 보장은 없습니다.

brew 재설치가 최선의 해결책은 아닐 수도 있지만, 효과가 있었고 필요한 명령을 제공했습니다.

제게 효과가 있었던 것은 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

모하비에서 나는 이것들을 .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"

그런 다음 pycopg 2.8.3을 python 3.7.4 가상 환경에 설치할 수 있었습니다.

이것은 xcode와 명령줄 도구를 다시 설치한 후에 발생합니다.

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

수 macOs 버전의 문제입니다.cryptography문제를 해결한 것은 설치 명령에 env를 제공하는 것입니다.

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

▁you▁can있습수를 대체할 수 있습니다.<YOUR COMMAND HERE>와 함께pip install cryptography또는pip install <SOMETHING THAT REQUIRES cryptography>예를들면.

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

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/

나를 위해 일했습니다.

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

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

사용하다brew info openssl최신 정보를 확인할 수 있습니다.

에 약에만.export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/. 명은사아위변않경습다니지하도것무를 지정해야 할 . 그러면 지정해야 할 수도 있습니다.openssl이 은 " "와 .

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl@1.1/lib/

에 하십시오.@1.1나고끝 openssl.

다음과 같은 경우:

  • 를 설치하려고 .psycopg2 이썬내 venv그리고.
  • 를 설치하려고 .psycopg2Silicon ( ARM Apple Silicon (신규 ARM CPU)에

그런 다음, 답변에서 ImmaAshay가 지시한 대로 OpenSSL 설치를 가리키기 위해 몇 가지 변수를 내보내야 합니다.

Apple Silicon의 설치 디렉터리는 Apple Intel 컴퓨터와 분명히 다릅니다.그럼에도 불구하고 홈브루를 통해 시스템에서 OpenSSL이 설치된 위치를 찾으려면 다음을 실행할 수 있습니다.

brew --prefix openssl

경우는 에 있어요./opt/homebrew/opt/openssl@1.1그래서 이것은 우리가 수출해야 할 변수들이

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

그럼 도망갈 수 있어요

pip install psycopg2

를 설치하는 대신 동일한 작성자로부터 를 설치합니다.

pip install psycopg2-binary

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

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

$ pip install psycopg2-binary

이진 패키지는 개발 및 테스트를 위한 실용적인 선택이지만 실제 환경에서는 소스로 구축된 패키지를 사용하는 것이 좋습니다.

최근 가상 환경에 Python 3.7을 설치한 지 얼마 되지 않아 High Sierra에서 이 문제가 발생했습니다.

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

저는 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

홈브루를 사용하는 경우 openssl 링크를 강제로 연결하는 것이 최선의 방법이 아닐 수 있습니다.위의 몇 가지 답변이 요약되었듯이, 다음은 벤브 내부에서 저에게 효과가 있었습니다.

export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
pip install psycopg2

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

나는 이와 같은 오류를 가지고 있었고 사이톤을 설치한 후 해결되었습니다.

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

'''


개발 환경을 요청하는 것은 알지만 서버에 배포하는 경우에는 Heroku라고 말합니다.요구 사항에 아래 줄을 추가하기만 하면 됩니다.프로젝트의 txt.

django-heroku==0.3.1

이 패키지 자체가 서버 배포에 psycopg2와 같은 필수 패키지를 설치하기 때문입니다.그러니 herku 서버가 처리하도록 하세요.

나의 경우 openssl은 homebrew 디렉토리 안에 있으며 제안된 답변이 작동하지 않습니다.

불량:

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

좋습니다.

LDFLAGS="-I/opt/homebrew/Cellar/openssl@1.1/1.1.1i/include -L/opt/homebrew/Cellar/openssl@1.1/1.1.1i/lib" pip install psycopg2

팁:

다음을 사용하여 홈브루의 openssl 디렉토리를 쉽게 찾을 수 있습니다.brew --prefix openssl버전 폴더(내 경우 1.1.1i)를 포함해야 합니다.

저는 여기서 대부분의 다른 답들을 시도했지만 성공하지 못했습니다.제게 유일하게 효과가 있었던 것은 psycopg2에서 2.8에서 2.9.2로 업데이트한 것입니다(Apple M1과 함께 MacOS 12 실행).

여기 나열된 모든 것을 시도하고, 셸을 zsh에서 bash로 전환한 다음, 작동했습니다.

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

brew unlink openssl && brew link openssl --force

이것이 제가 이전에 OpenSSL에서 했던 브루 제거/업그레이드와 어떻게 다른지 잘 모르겠습니다.이러한 작업으로 인해 일부 "결함이 있는" 공유 라이브러리가 작동하지 않는 것으로 추정됩니다.이로 인해 파이썬 암호화 모듈 설치 문제도 해결되었습니다.

언급URL : https://stackoverflow.com/questions/26288042/error-installing-psycopg2-library-not-found-for-lssl

반응형