質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.59%

pythonでmysqlにデータを入れたい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,484

cafe_kanaka

score 9

前提・実現したいこと

mac os10.12.4
MAMP4.1.1
Python3.6
mysql 5.6.35

pythonでmysqlにデータを入れたいです。

発生している問題・console error.log

[Fri Jun 16 23:03:11 2017] [error] [client ::1] Traceback (most recent call last):, referer: http://localhost:8888/
[Fri Jun 16 23:03:11 2017] [error] [client ::1]   File "/Applications/MAMP/htdocs/mysql-test.py", line 2, in <module>, referer: http://localhost:8888/
[Fri Jun 16 23:03:11 2017] [error] [client ::1]     import MySQLdb, referer: http://localhost:8888/
[Fri Jun 16 23:03:11 2017] [error] [client ::1] ModuleNotFoundError: No module named 'MySQLdb', referer: http://localhost:8888/

該当のソースコード

#!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
import MySQLdb
conn = MySQLdb.connect(
    user='root',
    passwd='root',
    host='localhost',
    db='data')
cur = conn.cursor()
cur.execute("INSERT INTO data(id,exchange,`datetime`) VALUES(NULL,111,datetime)")
cur.execute("SELECT * FROM data")
for row in cur.fetchall():
    print(row)

試したこと

ターミナルで
pip3 install mysqlclient

発生している問題・エラーメッセージ

Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-iuz1vt6l/mysqlclient/

そのほかに課題に対してアプローチしたこと

sudo install -y libmysqlclient-dev
brew install mysql-connector-c
easy_install -U setuptools
MySQL-python-1.2.4b4のダウンロード(どこに置けばいいかわからなかったです)

独学中の初心者です。宜しくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • miyahan

    2017/06/16 23:49

    エラーメッセージ(Command "python setup.py egg_info" failed)をすべて張って下さい

    キャンセル

  • cafe_kanaka

    2017/06/18 22:40

    Collecting mysqlclient Using cached mysqlclient-1.3.10.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup.py", line 17, in <module> metadata, options = get_config() File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup_posix.py", line 54, in get_config libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')] File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup_posix.py", line 54, in <listcomp> libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')] File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup_posix.py", line 12, in dequote if s[0] in "\"'" and s[0] == s[-1]: IndexError: string index out of range ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/

    キャンセル

  • cafe_kanaka

    2017/06/18 22:41

    です。宜しくお願いします。

    キャンセル

回答 1

checkベストアンサー

0

mysqlclient-python本家の下記 issue が関連しているように思えます:
pip3 install mysqlclient fails on macOS · Issue #169 · PyMySQL/mysqlclient-python

ちょっと大変そうです...


行き詰まってしまった場合は、他のMySQLドライバーを使うのも検討してみてください

  • PyMySQL: GitHubのスター数を見る限り一番人気の模様。MITライセンス
  • mysql-connector-python: MySQLの開発元Oracle公式のドライバー。GPLv2ライセンス

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/19 03:14

    phpで動いているのでサーバー起動済みでユーザー名、パスワード、データベース名は間違っていないと思いますが、もしかしてmampでインストールしたmysqlはpythonで使えないんですか???

    キャンセル

  • 2017/06/19 03:33

    MAMPは MySQL の Socket ファイルのパスが特殊なため、Python のコードで明示的に指定するか、一般的なパスにシンボリックリンクを張る必要があるようです

    http://qiita.com/gtaiyou24/items/6d9eee45f40408c7d2bc

    PHPだとそのまま接続できるのは、MAMP向けの設定が最初から入っているためだと思います。

    キャンセル

  • 2017/06/19 03:57

    言われてみればそうでした。
    phpでwebサイトを作るならmampなように、
    pythonでwebサイトを作るならdjangoというものがあるみたいですね
    そちらでやってみようと思います
    そのときに躓いたらまたお願いします。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る