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

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

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

4064閲覧

python3でMySQLを使うことができません。

s.k

総合スコア423

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2017/04/21 06:55

###前提・実現したいこと
ローカルでPython3とMySQLの接続を行いたいです!

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

sagaemiyakowarenoMacBook-Pro:workspace keiga$ python3 guestbook.py Traceback (most recent call last): File "guestbook.py", line 3, in <module> import MySQLdb File "/Users/keiga/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/MySQLdb/__init__.py", line 19, in <module> import _mysql ImportError: dlopen(/Users/keiga/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/_mysql.cpython-35m-darwin.so, 2): Library not loaded: libssl.1.0.0.dylib Referenced from: /Users/keiga/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/_mysql.cpython-35m-darwin.so Reason: image not found

###該当のソースコード

【guestbook.py】

# coding: utf-8 import shelve import MySQLdb from flask import Flask, request, render_template, redirect, escape, Markup from datetime import datetime application = Flask(__name__) DATA_FILE = 'guestbook.dat' def save_data(name, comment, create_at): con = MySQLdb.connect( unix_socket = '/Applications/MAMP/tmp/mysql/mysql.sock', user='xxxxx', passwd='xxxxx', host='localhost', db='python_character') # カーソルを取得する cur= con.cursor() database = shelve.open(DATA_FILE) if 'greeting_list' not in database: greeting_list = [] else: greeting_list = database['greeting_list'] greeting_list.insert(0, { 'name': name, 'comment': comment, 'create_at': create_at, }) database['greeting_list'] = greeting_list database.close() def load_data(): database = shelve.open(DATA_FILE) greeting_list = database.get('greeting_list', []) database.close() return greeting_list @application.route('/post', methods=['POST']) def post(): name = request.form.get('name') comment = request.form.get('comment') create_at = datetime.now() save_data(name, comment, create_at) return redirect('/') @application.route('/post_index', methods=['POST']) def post_index(): adobe = request.form.get('adobe') return redirect('/') @application.route('/') def index(): greeting_list = load_data() return render_template('index.html', greeting_list=greeting_list) @application.route('/top') def top(): return render_template('top.html') @application.template_filter('nl2br') def nl2br_filter(s): return escape(s).replace('\n', Markup('<br>')) @application.template_filter('datetime_fmt') def datetime_fmt_filter(dt): return dt.strftime('%Y/%m/%d %H:%M:%S') if __name__ == '__main__': application.run('127.0.0.1', 8000, debug=True)

mysqlclientはローカルにインストールできています。

sagaemiyakowarenoMacBook-Pro:workspace keiga$ pip install mysqlclient Requirement already satisfied: mysqlclient in /Users/keiga/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

python - psycopg2 installation error - Library not loaded: libssl.dylib - Stack Overflow によると、libssl と libcrypto のバージョンが古すぎるのが原因なようです。(macOSに付属しているオープンソースソフトウェアは総じて時代遅れです...)

実は Anaconda には適切なバージョンの同ライブラリが同梱されているのですが、それらをロードできない不具合があるようです。最新の anaconda3-4.3.1 を使ったところ正常に動作したので、バージョンアップをおすすめします。

もしどうしても古い 4.0.0 を使う必要があるのであれば、Homwbrew で最新の openssl をインストールし、それを参照するようにシンボリックリンクを張る方法が考えられます。(Mac全体に悪影響を及ぼす可能性があるため、あまりおすすめできませんが...)

bash

1brew install -upgrade openssl 2ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib 3ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib

投稿2017/04/21 16:35

miyahan

総合スコア3095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s.k

2017/04/22 03:28

ありがとうございます! 一人では解決にかなり時間がかかりそうでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問