OSX MySQL-Python 1.2.5 Fehlerbehandlung IndexError: Zeichenfolgenindex außerhalb des Bereichs

Ich habe einmal aufgegeben, aber dank meiner Senioren bei der Arbeit haben sich meine C / C ++ - Kompilierungsfähigkeiten in den letzten Tagen verbessert, also werde ich es erneut versuchen!

#Zunächst einmal MySQL-Connector selbst-Herunterladen und installieren c
https://dev.mysql.com/downloads/connector/c/
#Ich werde die Details hier weglassen,Aber es sieht so aus. tar zxvf xxxx.tar.gz; cd mysql*; mkdir build; cd build; cmake ..; make; sudo make install

# mysql_Konfiguration ist/usr/local/mysql/bin/Da es installiert wird, setzen Sie einen entsprechenden Link
ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/

% pip install mysql-python
Collecting mysql-python
  Using cached MySQL-python-1.2.5.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/9j/12cqyk6x2s5dc22x2mnlpmmw0000gn/T/pip-build-Cf6eHO/mysql-python/setup.py", line 17, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 53, in get_config
        libraries = [ dequote(i[2:]) for i in libs if i.startswith(compiler_flag("l")) ]
      File "setup_posix.py", line 8, in dequote
        if s[0] in "\"'" and s[0] == s[-1]:
    IndexError: string index out of range

#Laden Sie zip selbst herunter und versuchen Sie es mit https://pypi.python.org/pypi/MySQL-python/1.2.5
% unzip MySQL-python-1.2.5.zip; cd MySQL-python*;
% python setup.py build
Traceback (most recent call last):
  File "setup.py", line 17, in <module>
    metadata, options = get_config()
  File "./MySQL-python-1.2.5/setup_posix.py", line 53, in get_config
    libraries = [ dequote(i[2:]) for i in libs if i.startswith(compiler_flag("l")) ]
  File "./MySQL-python-1.2.5/setup_posix.py", line 8, in dequote
    if s[0] in "\"'" and s[0] == s[-1]:
IndexError: string index out of range

#Ich habe die Python-Fehler und -Strings hier nicht überprüft. Verwenden Sie daher die folgende Methode, um sie zu beheben
if s[0] in "\"'" and s[0] == s[-1]:
Zu
if s and s[0] in "\"'" and s[0] == s[-1]:
ändern.

#Versuchen Sie es nochmal
% python setup.py build
/usr/bin/clang -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/_mysql.o -L/usr/local/mysql/lib -l -o build/lib.macosx-10.6-intel-2.7/_mysql.so
clang: error: no such file or directory: 'build/lib.macosx-10.6-intel-2.7/_mysql.so'
error: command '/usr/bin/clang' failed with exit status 1
#Ich fand es so einfach, aber die Realität sieht nicht so gut aus!
#Ich habe den Inhalt überprüft.o ist gemacht, aber.Fehler beim Erstellen

#Dann kompilierst du es selbst?
clang -bundle -undefined dynamic_lookup -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/_mysql.o -L/usr/local/mysql/lib -lmysqlclient -o build/lib.macosx-10.6-intel-2.7/_mysql.so 
# -lmysqlclient ist der Punkt,Python verknüpft nicht absichtlich, sondern erkennt dynamisch
#Kein Fehler, ja OK

#Schließen Sie durch Installation ab
% python setup.py install 
...
Processing dependencies for MySQL-python==1.2.5
Finished processing dependencies for MySQL-python==1.2.5

% python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 12:39:47) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import _mysql
>>> import MySQLdb
>>> ^D

:)

Recommended Posts

OSX MySQL-Python 1.2.5 Fehlerbehandlung IndexError: Zeichenfolgenindex außerhalb des Bereichs
Python-Fehlermeldungen sind konkret und leicht zu verstehen "ga" (Indexfehler: Listenindex außerhalb des Bereichs mit Element [0])
Fehler geteilt durch 0 Behandlung von ZeroDivisionError