

MAMPでPythonのWebアプリケーション開発を行っているのですが, PythonのMySQL-Pythonがエラーでインストールできません.
調べてみたところMySQL-Pythonのインストールに関してエラーが発生するケースが多いようですが, 色々調べて試してみたもののうまくいきません.  
以下, ターミナルのログです.

## エラー

[code]

    $ sudo pip install mysql-python
    The directory '/Users/Owner/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
    The directory '/Users/Owner/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
    Collecting mysql-python
      Downloading MySQL-python-1.2.5.zip (108kB)
        100% |████████████████████████████████| 112kB 1.2MB/s 
    Installing collected packages: mysql-python
      Running setup.py install for mysql-python ... error
        Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-2QuhFE/mysql-python/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-wx4saf-record/install-record.txt --single-version-externally-managed --compile:
        running install
        running build
        running build_py
        creating build
        creating build/lib.macosx-10.12-intel-2.7
        copying _mysql_exceptions.py -> build/lib.macosx-10.12-intel-2.7
        creating build/lib.macosx-10.12-intel-2.7/MySQLdb
        copying MySQLdb/__init__.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb
        copying MySQLdb/converters.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb
        copying MySQLdb/connections.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb
        copying MySQLdb/cursors.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb
        copying MySQLdb/release.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb
        copying MySQLdb/times.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb
        creating build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        copying MySQLdb/constants/__init__.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        copying MySQLdb/constants/CR.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        copying MySQLdb/constants/ER.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        copying MySQLdb/constants/FLAG.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        copying MySQLdb/constants/REFRESH.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.12-intel-2.7/MySQLdb/constants
        running build_ext
        building '_mysql' extension
        creating build/temp.macosx-10.12-intel-2.7
        cc -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/local/Cellar/mysql/5.7.14/include/mysql -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _mysql.c -o build/temp.macosx-10.12-intel-2.7/_mysql.o -fno-omit-frame-pointer
        In file included from _mysql.c:44:
        /usr/local/Cellar/mysql/5.7.14/include/mysql/my_config.h:174:9: warning: 'SIZEOF_LONG' macro redefined [-Wmacro-redefined]
        #define SIZEOF_LONG      8
                ^
        /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/pymacconfig.h:54:17: note: previous definition is here
        #        define SIZEOF_LONG             4
                        ^
        In file included from _mysql.c:44:
        /usr/local/Cellar/mysql/5.7.14/include/mysql/my_config.h:179:9: warning: 'SIZEOF_TIME_T' macro redefined [-Wmacro-redefined]
        #define SIZEOF_TIME_T    8
                ^
        /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/pymacconfig.h:57:17: note: previous definition is here
        #        define SIZEOF_TIME_T           4
                        ^
        _mysql.c:1589:10: warning: comparison of unsigned expression = sizeof(row_converters)) {
                    ~~~ ^ ~
        3 warnings generated.
        _mysql.c:287:14: warning: implicit conversion loses integer precision: 'Py_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
                        cmd_argc = PySequence_Size(cmd_args);
                                 ~ ^~~~~~~~~~~~~~~~~~~~~~~~~
        _mysql.c:317:12: warning: implicit conversion loses integer precision: 'Py_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
                        groupc = PySequence_Size(groups);
                               ~ ^~~~~~~~~~~~~~~~~~~~~~~
        _mysql.c:470:14: warning: implicit conversion loses integer precision: 'Py_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
                                int j, n2=PySequence_Size(fun);
                                       ~~ ^~~~~~~~~~~~~~~~~~~~
        _mysql.c:1127:9: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                        len = mysql_real_escape_string(&(self->connection), out, in, size);
                            ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        _mysql.c:1129:9: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                        len = mysql_escape_string(out, in, size);
                            ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        _mysql.c:1168:9: warning: implicit conversion loses integer precision: 'Py_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
                size = PyString_GET_SIZE(s);
                     ~ ^~~~~~~~~~~~~~~~~~~~
        /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/stringobject.h:92:32: note: expanded from macro 'PyString_GET_SIZE'
        #define PyString_GET_SIZE(op)  Py_SIZE(op)
                                       ^~~~~~~~~~~
        /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/object.h:116:56: note: expanded from macro 'Py_SIZE'
        #define Py_SIZE(ob)             (((PyVarObject*)(ob))->ob_size)
                                         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
        _mysql.c:1178:9: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                        len = mysql_real_escape_string(&(self->connection), out+1, in, size);
                            ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        _mysql.c:1180:9: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                        len = mysql_escape_string(out+1, in, size);
                            ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        _mysql.c:1274:11: warning: implicit conversion loses integer precision: 'Py_ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
                if ((n = PyObject_Length(o)) == -1) goto error;
                       ~ ^~~~~~~~~~~~~~~~~~
        /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/abstract.h:434:25: note: expanded from macro 'PyObject_Length'
        #define PyObject_Length PyObject_Size
                                ^
        _mysql.c:1466:10: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                                len = strlen(buf);
                                    ~ ^~~~~~~~~~~
        _mysql.c:1468:10: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                                len = strlen(buf);
                                    ~ ^~~~~~~~~~~
        _mysql.c:1504:11: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                                        len = strlen(buf);
                                            ~ ^~~~~~~~~~~
        _mysql.c:1506:11: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
                                        len = strlen(buf);
                                            ~ ^~~~~~~~~~~
        _mysql.c:1589:10: warning: comparison of unsigned expression = sizeof(row_converters)) {
                    ~~~ ^ ~
        14 warnings generated.
        cc -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -Wl,-F. build/temp.macosx-10.12-intel-2.7/_mysql.o -L/usr/local/Cellar/mysql/5.7.14/lib -lmysqlclient -lssl -lcrypto -o build/lib.macosx-10.12-intel-2.7/_mysql.so
        ld: library not found for -lssl
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        error: command 'cc' failed with exit status 1
        
        ----------------------------------------
    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-2QuhFE/mysql-python/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-wx4saf-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-2QuhFE/mysql-python/
[/code]

## Pythonのバージョン

2.7.10です.

[code]

    $ python --version
    Python 2.7.10
[/code]

ご教授お願いいたします.


CC BY-SA 3.0
2017-04-11T15:54:18.537
33938
2022-05-04T06:05:00.560
2021-02-05T16:26:27.030
3060
22465
question
python mysql macos pip
macOS Sierra 10.12.4でMySQL-Pythonがインストールできない (pip)


`pip freeze` で pyOpenSSL が入っていることは確認したのですが, どうやらバージョンが古すぎたようです.

`brew unlink openssl && brew link openssl --force` を実行したところ新しいバージョンにリンクされたようで,
その後は `$ sudo pip install MySQL-Python` でインストールに成功しました.

[error installing psycopg2, library not found for
-lssl](http://stackoverflow.com/questions/26288042/error-installing-
psycopg2-library-not-found-for-lssl)

* * *

_この投稿は[@david_0717
さんのコメント](https://ja.stackoverflow.com/questions/33938/macos-
sierra-10-12-4%e3%81%a7mysql-
python%e3%81%8c%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84-pip#comment33475_33938)
の内容を元に コミュニティwiki として投稿しました。_


CC BY-SA 4.0
2020-09-02T02:10:16.427
70067
2020-09-02T02:10:16.427
3060
33938
answer