M1 Mac에 psycopg2를 설치하는 방법
요약: 솔루션
내용물
소개
1년 전에 다른 프로젝트에서 이 문제를 해결할 수 없었기 때문에 Docker 컨테이너를 사용하여 간단한 Linux 환경을 에뮬레이트하여
psycopg2
사용할 수 있었습니다. 나는 이제 좀 더 나이가 들고 현명해졌기 때문에 에 대한 동일한 문제에 직면했을 때 오늘 하루 종일 M1 Mac 환경에서 psycopg2
를 설치하는 방법을 알아냈습니다. 어떻게든 다른 사람들에게는 효과가 있었을 수 있는 많은 솔루션을 시도했지만 궁극적으로 나에게는 효과가 없었습니다. 솔루션은 내가 M1 Mac Air를 사용하기 시작한 이후로 수행한 가장 바닐라 설치였습니다.해결책
pyenv
, pipx
및 python
의 다른 모든 버전을 제거합니다. 3.10.4
을 다운로드하고 있었으므로 더 업데이트된 버전이 있는지 둘러보십시오. python3 --version
를 실행하십시오. pip3 install psycopg2-binary
선택적 단계
선택적으로 M1 Mac에도 PostgreSQL을 설치할 수 있습니다.
/Library/PostgreSQL/14
였으므로 방금 사용했습니다. .zshrc
파일의 PATH에 PostgreSQL 빈을 추가합니다. 다음과 같아야 합니다.export PATH="/your/path/to/PostgreSQL/14/bin:\$PATH"
또는 내 것과 동일한 폴더에 설치한 경우 이 명령을 사용할 수 있습니다.
echo 'export PATH="/Library/PostgreSQL/14/bin:$PATH"' >> ~/.zshrc
pg_config
를 실행합니다. 구성이 나타납니다. 이러한 잠재적 솔루션을 피하십시오
pyenv
또는 asdf
와 같은 버전 관리자를 사용하지 마십시오. 이 구성으로 psycopg2
를 설치하면 arm64
의 구조적 문제가 발생할 수 있습니다.Homebrew
또는 Homebrew
와 함께 설치된 모든 것을 사용하지 마십시오. openssl
, libpq
및 기타 TLS/SSL 패키지는 Python에 대한 SSL 지원 부족을 대체하기에 충분하지 않습니다. 필요한 특정 라이브러리에 심볼릭 링크를 추가하는 것만으로도 문제를 해결하기에 충분하지 않습니다.해결 방법
introduction에서 언급했듯이 Docker를 사용하여 애플리케이션을 컨테이너화하고 궁극적으로
psycopg2
를 설치할 수 있습니다. 그러나 가장 간단하거나 가장 빠른 솔루션은 아닙니다. 이런 식으로 해야 하는 경우 시작하는 데 도움이 되도록 당시 작업 중이던 Github 프로젝트에 대한 몇 가지 유용한 링크가 있습니다.Dockerfile
used for the Django
Backend docker-compose.yml
file used for the Frontend and Backend 결론
이게 도움이 되길 바란다. Apple의 M1 칩은 지난 1년 동안 개발자 커뮤니티로부터 엄청난 지원을 받은 것으로 보이며, 이로 인해 Mac Air를 Framework laptop에 판매할 의향이 줄어들었습니다.
나는 Apple이 각각
Homebrew
및 pyenv
및 asdf
와 같은 타사 패키지 관리자 및 버전 관리자의 필요성을 제거하기를 원한다고 추측할 수 있습니다. 최신 업데이트인 Monterey 12.3은 특히 Xcode가 설치되지 않은 경우 타사 프로그램에 적대적입니다. It's not impossible to install and use 3rd-party applications but there will be security pop-up that needs a little more than a password to get around. .
Reference
이 문제에 관하여(M1 Mac에 psycopg2를 설치하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tieje/how-to-install-psycopg2-on-an-m1-mac-mie텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)