M1 Mac에 psycopg2를 설치하는 방법

요약: 솔루션



내용물


  • Introduction
  • The Solution
  • Avoid These Potential Solutions
  • Workarounds
  • Conclusion

  • 소개



    1년 전에 다른 프로젝트에서 이 문제를 해결할 수 없었기 때문에 Docker 컨테이너를 사용하여 간단한 Linux 환경을 에뮬레이트하여 psycopg2 사용할 수 있었습니다. 나는 이제 좀 더 나이가 들고 현명해졌기 때문에 에 대한 동일한 문제에 직면했을 때 오늘 하루 종일 M1 Mac 환경에서 psycopg2를 설치하는 방법을 알아냈습니다. 어떻게든 다른 사람들에게는 효과가 있었을 수 있는 많은 솔루션을 시도했지만 궁극적으로 나에게는 효과가 없었습니다. 솔루션은 내가 M1 Mac Air를 사용하기 시작한 이후로 수행한 가장 바닐라 설치였습니다.

    해결책


  • 시스템의 Python을 제외한 pyenv , pipxpython의 다른 모든 버전을 제거합니다.
  • python website 에서 최신 버전의 Python을 다운로드합니다. 글을 쓰는 시점에 저는 Python3.10.4을 다운로드하고 있었으므로 더 업데이트된 버전이 있는지 둘러보십시오.
  • 설치 프로그램을 실행합니다. 완료되면 응용 프로그램을 확인하면 거기에 새 버전의 Python이 있어야 합니다. 새 설치를 테스트하려면 새 터미널에서 python3 --version를 실행하십시오.
  • 달리다 pip3 install psycopg2-binary

  • 선택적 단계



    선택적으로 M1 Mac에도 PostgreSQL을 설치할 수 있습니다.
  • official website에서 postgreSQL 설치를 다운로드합니다. 작성 당시 최신 버전인 PostgreSQL 14는 M1 Mac 아키텍처를 가장 많이 지원하는 것으로 보입니다.
  • 설치 마법사를 실행합니다. 내 설치의 기본 위치는 /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를 실행합니다. 구성이 나타납니다.
  • Django 응용 프로그램을 시작하기 위해 PostgreSQL은 brief tutorial 을 제공합니다. 이는 나중에 설정에서 초기 SQLite 데이터베이스를 교체할 때 실제로 유용합니다.

  • 이러한 잠재적 솔루션을 피하십시오


    pyenv 또는 asdf 와 같은 버전 관리자를 사용하지 마십시오. 이 구성으로 psycopg2를 설치하면 arm64의 구조적 문제가 발생할 수 있습니다.
    Homebrew 또는 Homebrew와 함께 설치된 모든 것을 사용하지 마십시오. openssl , libpq 및 기타 TLS/SSL 패키지는 Python에 대한 SSL 지원 부족을 대체하기에 충분하지 않습니다. 필요한 특정 라이브러리에 심볼릭 링크를 추가하는 것만으로도 문제를 해결하기에 충분하지 않습니다.

    해결 방법



    introduction에서 언급했듯이 Docker를 사용하여 애플리케이션을 컨테이너화하고 궁극적으로 psycopg2를 설치할 수 있습니다. 그러나 가장 간단하거나 가장 빠른 솔루션은 아닙니다. 이런 식으로 해야 하는 경우 시작하는 데 도움이 되도록 당시 작업 중이던 Github 프로젝트에 대한 몇 가지 유용한 링크가 있습니다.
  • My Tutorial of getting started with Docker
  • My Dockerfile used for the Django Backend
  • My docker-compose.yml file used for the Frontend and Backend

  • 결론



    이게 도움이 되길 바란다. Apple의 M1 칩은 지난 1년 동안 개발자 커뮤니티로부터 엄청난 지원을 받은 것으로 보이며, 이로 인해 Mac Air를 Framework laptop에 판매할 의향이 줄어들었습니다.

    나는 Apple이 각각 Homebrewpyenvasdf 와 같은 타사 패키지 관리자 및 버전 관리자의 필요성을 제거하기를 원한다고 추측할 수 있습니다. 최신 업데이트인 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. .

    좋은 웹페이지 즐겨찾기