programing

Mac OS X에 MySQLdb(Python Data Access Library to MySQL)를 설치하는 방법

shortcode 2022. 9. 29. 23:56
반응형

Mac OS X에 MySQLdb(Python Data Access Library to MySQL)를 설치하는 방법

저는 Python 신참이지만 MySQLdb가 제대로 작동하도록 하는 방법을 알아보는 데 하루를 보냈습니다. 구글에 따르면 PITA가 무엇인지에 대한 수많은 참조와 시대에 뒤떨어진 것처럼 보이는 엄청난 수의 가이드가 포함되어 있습니다.이 사이트는 이러한 문제에 대처하는 것을 목적으로 하고 있으며, 향후 솔루션에 대한 참조가 필요하다는 것을 알고 있기 때문에 질문을 하고 답을 제시하여 그 밖에 무엇이 수면 위로 떠오르는지 확인합니다.

Mac OS X에서 MySQLdb를 어떻게 작동시키느냐가 문제입니다.

Python3를 사용하는 사용자용 업데이트:간단하게 사용할 수 있습니다.conda install mysqlclient현재 MySQLDB를 사용하는 데 필요한 라이브러리를 설치합니다.다음 SO 질문이 도움이 되었습니다.Python 3 ImportError: 'ConfigParser'라는 이름의 모듈은 없습니다. mysqlclient를 설치하면 mysqlclient, mysql-connector 및 llvmdev가 설치됩니다(적어도 이 3개의 라이브러리를 컴퓨터에 설치했습니다).

여기 이 문제에 대한 나의 횡설수설한 경험담이 있다.이 문제에 대한 더 나은 경험이 있다면 편집하거나 일반화하는 것이 좋습니다.SO 마법을 좀 부려봐

주의: 다음 단락의 코멘트는 Snow Leopard에는 적용되지만 64비트 MySQL이 필요한 Lion에는 적용되지 않습니다.

먼저 MySQLdb의 저자(아직도?)는 여기서 가장 치명적인 문제 중 하나는 OS X가 32비트 버전의 Python과 함께 설치된다는 것이지만, 대부분의 평균적인 즐거움(자신 포함)은 64비트 버전의 MySQL을 설치하기 위해 뛰어든다고 말합니다.나쁜 수법...64비트 버전을 설치한 경우 해당 버전을 제거한 후(이 작업은 SO에서 참조 가능), 32비트 버전을 다운로드하여 설치합니다(여기 패키지).

MySQLdb 라이브러리를 빌드 및 설치하는 방법은 여러 단계를 거칩니다.그들은 종종 미묘한 차이를 보인다.이것은 나에게 가장 인기 있는 것으로 생각되어 효과적인 해결책이 되었다.아래 몇 가지 편집으로 재현했습니다.

스텝 0: 시작하기 전에 Mac에 MySQL, Python, GCC가 설치되어 있을 것입니다.

1단계: SourceForge에서 최신 MySQL for Python 어댑터를 다운로드합니다.

순서 2: 다운로드한 패키지를 추출합니다.

tar xzvf MySQL-python-1.2.2.tar.gz

순서 3: 폴더내에서 패키지를 클리닝 합니다.

sudo python setup.py clean

몇 가지 추가 절차, (이 코멘트로부터)

순서 3b: MySQL-python-1.2/build/* 디렉토리에 있는 모든 것을 삭제합니다.--"http:/setup.py clean"을 신뢰하지 마십시오.

순서 3c: Users/$USER/.python-eggs 아래의 에그를 삭제합니다.

순서 4: 당초 _mysql.c를 편집해야 했지만 현재는 필요 없습니다.MySQLDB 커뮤니티에서 이 버그를 수정한 것 같습니다.

스텝 5: lib 아래에 심볼릭링크를 생성하여 mysql이라는 서브디렉토리를 포인트 합니다.컴파일 할 때 찾는 곳이에요.

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

순서 6: setup_posix.py를 편집하고 다음을 변경합니다.

mysql_config.path = "sysql_config"

로.

mysql_config.path = "/usr/local/sysql/bin/sysql_config"

순서 7: 같은 디렉토리에서 패키지를 재구축합니다(패키지와 함께 제공되는 경고는 무시합니다).

sudo python setup.py build

순서 8: 패키지를 인스톨 하면 완료됩니다.

sudo python setup.py install

스텝 9: 동작하고 있는지 테스트합니다.MySQLdb를 가져올 수 있으면 작동합니다.

python

import MySQLdb

순서 10: Import하려고 하면 다음과 같은 에러가 표시됩니다.Library not loaded: libmysqlclient.18.dylib끝은 다음과 같습니다.Reason: image not found다음과 같은 심볼 링크를 하나 더 생성해야 합니다.

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

여러분은 '하다'를 할 수 예요.import MySQLdb틀리지 않게.

마지막 문제는 빌드 디렉토리에서 Python을 실행하면 다음과 같은 오류가 발생한다는 것입니다.

/라이브러리/Python/2.5/사이트 패키지/마이SQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py: 사용자 경고: 모듈 _mysql이 /Library/Python/2.5/site-packages/My에서 이미 Import되었습니다.SQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.pyc이지만 XXX/MySQL-python-1.2.3c1이 sys.path에 추가되고 있습니다.

이것은 구글에게는 꽤 쉬운 일이지만, 수고를 덜기 위해서(혹은 아닐지도 모르지만) 여기에 도착하게 될 것입니다.특별히 미래에 대비할 수 있는 URL은 아님)을 통해cd ..에러가 사라집니다.

제가 맨 위에 썼듯이, 저는 이 답변이 일반화되기를 바랍니다. 왜냐하면 이 끔찍한 문제에 대한 수많은 다른 구체적인 경험들이 있기 때문입니다.편집하거나 더 나은 답변을 제공합니다.

Mac OS X 10.8(Mountain Lion), 10.9(Mavericks), 10.10(Yosemite) 및 10.11(El Capitan)의 빠르고 쉬운 방법:

XCode와 명령줄 툴, Python, MySQL이 설치되어 있을 것입니다.

  1. PIP 설치:

    sudo easy_install pip
    
  2. ~/.profile 편집: (Mac OS X 10.10에서는 필요하지 않을 수 있음)

    nano ~/.profile
    

    다음 두 줄을 복사하여 붙여넣기

    export PATH=/usr/local/mysql/bin:$PATH
    export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
    

    저장하고 종료합니다.뒷말이 끝나면 다음 명령을 실행합니다.

    source  ~/.profile
    
  3. MySQLdb 설치

    sudo pip install MySQL-python
    

    정상적으로 동작하고 있는지 테스트하려면 , 시험해 주세요.

    python -c "import MySQLdb"
    

그것은 내게는 마법처럼 작용했다.도움이 됐으면 좋겠어요.

라이브러리 누락에 관한 오류: Library not loaded: libmysqlclient.18.dylib이 발생한 경우 symlink해야 합니다./usr/lib다음과 같이 합니다.

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 

MacPorts를 통해 mysql과 python을 설치합니다.포터는 어려운 일을 모두 해냈습니다.

sudo port install py26-mysql 
sudo port install mysql5-server

필요한 것을 인스톨 합니다.(댓글 remysql 서버의 스택오버플로우를 참조해 주세요).

mysql에만 접속하고 서버를 실행하지 않으면 첫 번째 행으로 충분합니다.

MacPorts는 현재(2013년 초) OS의 공통 조합인 실행 가능한 아키텍처에 대해 바이너리 다운로드를 제공하고 있으며, 기타(및 요청 시)는 소스에서 구축합니다.

일반적으로 macports(또는 fink)는 설치해야 하는 복잡한 라이브러리 등이 있을 때 도움이 됩니다.

Python만의 코드와 setuptools 등을 통해 단순한 C 의존관계를 설정할 수 있는 경우, 그러나 이 둘을 혼합하면 복잡해지기 시작합니다.

설치 pip:

sudo easy_install pip

brew 설치:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

설치 mysql:

brew install mysql

MySQLdb 설치

sudo pip install MySQL-python

컴파일에 문제가 있는 경우, 여기 답변 중 하나와 같이 ~/.profile 파일을 편집해 보십시오.

스텝 9의 완료에 관한 에러를 수신한 후, 다음의 순서를 실행합니다.

ImportError: dlopen(/Users/rick/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib

    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

레퍼런스:감사합니다!http://ageekstory.blogspot.com/2011_04_01_archive.html

"Mac에 MySQL-python 설치"에서 설명한 바와 같이

pip uninstall MySQL-python
brew install mysql
pip install MySQL-python

그런 다음 테스트합니다.

python -c "import MySQLdb"

피톤을 사용해 .pymysql:

sudo easy_install pymysql

( (는사)))pip스스되되되되되있있있있있인 。다음에 이것을 .import MySQLdb★★★★

try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass

Lion box를 새로 구입한 후 문제가 발생했습니다.

내가 찾은 최고의 솔루션(100% 최적은 아니지만 작동 가능):

Apple에서 XCode/Dev Tools를 다운로드하면 얻을 수 있습니다.대박 다운로드입니다.

...하지만 대신 필요한 기능을 갖춘 (XCode가 없는) Github를 추천합니다.https://github.com/kennethreitz/osx-gcc-installer

Lion용 사전 제작 PKG를 다운로드했습니다.https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg

  • 64-B를 다운로드했는지 확인합니다.MYSQL 커뮤니티의 IT 버전.(DMG 의 인스톨은 간단한 루트입니다).http://dev.mysql.com/downloads/mysql/

  • 다음과 같이 경로를 설정합니다.

    내보내기 PATH=$PATH:/usr/local/mysql-XXXX

    DYLD_LIBRARY_PATH 내보내기 = /usr/local/local/syslog/lib/

    ARCHFLAGS='-arch x86_64' 내보내기

주의사항:

위의 mysql-XXXX의 1은 XXX가 다운로드한 특정 버전입니다.(아마도 /usr/local/mysql/도 같은 에일리어스이기 때문에 동작합니다만, 설정을 아는 척은 하지 않습니다.)

2 ARCHFLAGS를 '-arch i386 -arch x86_64'로 설정할 것을 제안하고 있습니다만, x86_64만을 지정하는 것이 더 효과적이라고 생각됩니다(그 이유는 생각할 수 있습니다만, 엄밀하게는 관계가 없습니다).

  • 야수를 설치하라!

    easy_install MySQL-python

  • 마지막 단계:

DYLD_LIBRARY_PATH를 영구적으로 추가합니다.

bash_profile 등에 추가할 수 있습니다.이것은 저에게 누락된 단계였고, 시스템이 mysql.so 등 다양한 오류를 계속 찾아냈습니다.

DYLD_LIBRARY_PATH 내보내기 = /usr/local/local/syslog/lib/

@richard-boardman님, 방금 귀사의 소프트 링크 솔루션을 발견했습니다.실제로 PATH 솔루션과 같은 동작을 하고 있을 가능성이 있습니다.여러분, 당신에게 가장 좋은 것이면 뭐든지 하세요.

베스트 레퍼런스: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/

또는 간단한 시도:

> sudo easy_install MySQL-python

다음과 같은 오류가 발생할 경우:

Environment Error: mysql_config를 찾을 수 없습니다.

그럼 이걸 실행해 주세요.

> export PATH=$PATH:/usr/local/mysql/bin

이 답변은 2019년 11월경 업데이트입니다.널리 사용되는 pip 설치 중 MacOS 10.13(및 다른 버전도 마찬가지)에서 작동 설정을 제공하지 않습니다.다음은 작업을 수행할 수 있는 간단한 방법입니다.

brew install mysql
pip install mysqlclient

brew 의 인스톨에 도움이 필요한 경우는, 다음의 사이트를 참조해 주세요.https://brew.sh/

64비트 MySQL을 사용하는 경우 mysql-python 라이브러리를 구축하면서 ARCHFLAGS를 사용하여 CPU 아키텍처를 지정하면 다음과 같은 이점이 있습니다.

ARCHFLAGS='-arch x86_64' python setup.py build
ARCHFLAGS='-arch x86_64' python setup.py install
export PATH=$PATH:/usr/local/mysql/bin/

should fix the issue for you as the system is not able to find the mysql_config file.

On macos Sierra this work for me, where python is managed by anaconda:

anaconda search -t conda mysql-python

anaconda show CEFCA/mysql-python

conda install --channel https://conda.anaconda.org/CEFCA mysql-python

The to use with SQLAlchemy:

Python 2.7.13 |Continuum Analytics, Inc.| (default, Dec 20 2016, 23:05:08) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. Anaconda is brought to you by Continuum Analytics. Please check out: http://continuum.io/thanks and https://anaconda.org

>>> from sqlalchemy import *

>>>dbengine = create_engine('mysql://....')

이 문제에 부딪혀 보니mysqlclient는 openssl을 찾는 위치를 알아야 하며 기본적으로는 OSX가 이를 숨깁니다.

openssl 위치 지정brew info openssl에 경로를 추가합니다.opensslbin to your PATH:

export PATH="/usr/local/opt/openssl/bin:$PATH"

I recommend adding that to your .zshrc or .bashrc so you don't need to worry about it in the future. Then, with that variable exported (which may meed closing and re-opening your bash session), add two more env variables:

# in terminal
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"

Then, finally, run:

pipenv install mysqlclient

and it should install just fine.

Source: https://medium.com/@shandou/pipenv-install-mysqlclient-on-macosx-7c253b0112f2

ReferenceURL : https://stackoverflow.com/questions/1448429/how-to-install-mysqldb-python-data-access-library-to-mysql-on-mac-os-x

반응형