저는 Python 초보자이지만 MySQLdb가 제대로 작동하도록하는 방법을 연구하는 데 하루를 보냈습니다. Google에 따르면 우주에는 PITA가 무엇인지에 대한 수많은 참조가 포함되어 있으며 시대에 뒤쳐진. 이 사이트는 이러한 종류의 문제를 해결하기위한 것이며 향후 솔루션에 대한 참조가 필요하다는 것을 알고 있으므로 질문을하고 제 답변을 제공하고 다른 내용이 표면.
그렇다면 문제는 Mac OS X에서 MySQLdb를 작동 시키는 방법입니다 .
답변
Python3
사용자 를위한 업데이트 :conda install mysqlclient
현재 존재하는 MySQLdb를 사용하는 데 필요한 라이브러리 를 간단히을 사용 하여 설치할 수 있습니다. 다음 SO 질문은 유용한 단서였습니다. Python 3 ImportError : No module named ‘ConfigParser’ . mysqlclient를 설치하면 mysqlclient, mysql-connector 및 llvmdev가 설치됩니다 (적어도 내 컴퓨터에이 3 개의 라이브러리가 설치됨).
이 문제에 대한 나의 경험담이 있습니다. 문제에 대해 더 나은 경험이 있다면 편집되거나 일반화되는 것을보고 싶을 것입니다. 약간의 SO 마법을 적용하십시오.
참고 : 다음 단락의 주석은 Snow Leopard에 적용되었지만 Lion에는 적용되지 않았으며 64 비트 MySQL이 필요한 것으로 보입니다.
우선, MySQLdb의 작성자 (여전히?)는 여기서 가장 위험한 문제 중 하나는 OS X에 32 비트 버전의 Python이 설치되어 있지만 대부분의 평균 joes (자신 포함)는 64 비트 버전을 설치하기 위해 점프한다고 말합니다. MySQL의. 잘못된 이동 … 64 비트 버전을 설치 한 경우 제거 ( 여기 에서이 작업에 대한 지침을 사용할 수 있음 ) 한 다음 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
COUPLE OF EXTRA STEPS, ( 이 의견에서 )
3b 단계 :
MySQL-python-1.2.2 / build / * 디렉터리에있는 모든 항목을 제거합니다. “python 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 = “mysql_config”
에
mysql_config.path = “/ usr / local / mysql / bin / mysql_config”
7 단계 :
동일한 디렉토리에서 패키지를 다시 빌드합니다 (함께 제공되는 경고 무시).
sudo python setup.py build
8 단계 :
패키지를 설치하면 완료됩니다.
sudo python setup.py install
9 단계 :
작동하는지 테스트합니다. MySQLdb를 가져올 수 있으면 작동합니다.
python
>>> import MySQLdb
10 단계 :
가져 오기를 시도 할 때 다음으로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을 시작하면 다음 오류가 발생한다는 것입니다.
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3 : UserWarning : 모듈 _mysql은 이미 /Library/Python/2.5/에서 가져 왔습니다. site-packages / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc,하지만 XXXX / MySQL-python-1.2.3c1이 sys.path에 추가됩니다.
이것은 Google에 매우 쉽지만 여기서 끝나는 문제를 해결하기 위해 (또는 미래에 대비 한 URL이 아닐 수도 있음) cd ..
빌드 디렉토리에서 벗어나야 한다는 것을 파악하면 오류가 사라질 것입니다.
내가 맨 위에 썼 듯이, 나는이 끔찍한 문제에 대한 많은 다른 특정 경험이 있기 때문에이 답변이 일반화되는 것을보고 싶습니다. 수정하거나 더 나은 답변을 제공하세요.
답변
Mac OS X 10.8 (Mountain Lion), 10.9 (Mavericks), 10.10 (Yosemite) 및 10.11 (El Capitan)을 위한 빠르고 쉬운 방법 :
XCode, 명령 줄 도구 , Python 및 MySQL이 설치되어 있다고 가정합니다 .
-
PIP 설치 :
sudo easy_install pip
-
~ / .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
-
MySQLdb 설치
sudo pip install MySQL-python
모든 것이 잘 작동하는지 테스트하려면
python -c "import MySQLdb"
나에게는 매력처럼 작용했다. 도움이되기를 바랍니다.
누락 된 라이브러리와 관련된 오류가 발생하면 : Library not loaded : libmysqlclient.18.dylib 다음 /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
필요한 것을 설치해야합니다. ( mysql 서버에 대한 주석은 스택 오버플로 참조 )
mysql에만 연결하고 서버를 실행하지 않으면 첫 번째 줄이면 충분합니다.
현재 Macports (2013 년 초)는 OS와 실행 가능한 아키텍처의 공통 조합에 대한 바이너리 다운로드를 제공하고, 다른 사용자 (요청하는 경우)는 소스에서 빌드합니다.
일반적으로 macports (또는 fink)는 설치해야하는 복잡한 라이브러리 등이있을 때 도움이됩니다.
Python 전용 코드와 간단한 C 종속성은 setuptools 등을 통해 설정할 수 있지만 두 가지를 혼합하면 복잡해지기 시작합니다.
답변
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"
답변
새 라이온 상자를 얻은 후에이 문제가 다시 발생했습니다.
내가 찾은 최고의 솔루션 (여전히 100 % 최적은 아니지만 작동 함) :
-
64 비트 파이썬이 있는지 확인하십시오. 라이브러리가 Mac OS X에서 빌드 된 32 비트 / 64 비트인지 확인하는 방법은 무엇입니까?
-
easy_install이없는 경우 설치하십시오. http://packages.python.org/distribute/easy_install.html
-
GCC가 없으면 설치하십시오.
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 비트 버전의 MYSQL 커뮤니티를 다운로드했는지 확인하십시오. (DMG 설치는 쉬운 경로입니다) http://dev.mysql.com/downloads/mysql/
-
다음과 같이 경로를 설정하십시오.
내보내기 PATH = $ PATH : / usr / local / mysql-XXXX
내보내기 DYLD_LIBRARY_PATH = / usr / local / mysql / 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 / mysql / lib /
@ richard-boardman, 방금 귀하의 소프트 링크 솔루션을 발견했습니다. 실제로 내 PATH 솔루션이 수행하는 것과 동일한 작업을 수행 할 수 있습니다. 여러분에게 가장 적합한 것이 무엇이든간에.
최고의 참조 :
http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/