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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

5870閲覧

jupyter で 「%%sql」 できない場合の対処法

tf23yh8df3

総合スコア60

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/06/28 07:53

編集2017/06/28 09:14

以下のようなエラーが出る

イメージ説明

load_ext sql した場合

python

1File "<ipython-input-11-85ab4c6da765>", line 2 2 select * from test; 3 ^ 4SyntaxError: invalid syntax

pymysql経由の場合

  • 普通に使える

python

1import pymysql 2db = pymysql.connect( 3 host='localhost', 4 user='xxxxx', 5 password='xxxxx', 6 charset='utf8') 7stmt = db.cursor() 8sql = 'select * from db.tbl' 9stmt.execute(sql)

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

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

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

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

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

guest

回答3

0

1. ipython-sql をインストール

Bash

1pip install ipython-sql

https://github.com/catherinedevlin/ipython-sql

2. jupyter上で %load_ext sql を実行

でどうでしょうか。

投稿2017/06/28 08:45

magichan

総合スコア15898

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

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

tf23yh8df3

2017/06/28 08:51

回答頂きありがとうございます。 エラーですね。
magichan

2017/06/28 08:51

どのようなエラーでしょうか?
tf23yh8df3

2017/06/28 08:55

本文に記載しました。
magichan

2017/06/28 09:00

ん?なんでだろ 一応確認ですが、 'load_ext' の頭に '%' をつけてますでしょうか? → '%load_ext sql'
tf23yh8df3

2017/06/28 09:15 編集

はい。 マジックコードを使用したSQLの使い方について参考になるサイトが有れば教えて頂けませんか。
magichan

2017/06/28 09:28

ダメですか…。 参考になるサイトの件ですが、とりあえずは上に挙げた ipython-sql のGitHub ページにてread me を読むのがよろしいのではないでしょうか。
tf23yh8df3

2017/06/30 07:38

magichan様 お騒がせしました。 マジックコード「%%sql」をつければSQLの補完が効くと思っていました。 「%load_ext sql」と「db接続」を済ませることでエラーでなくなりました。
guest

0

ipython-sqlパッケージがインストールされているか確認してください。
もし無ければ以下のコマンドを打ってくだい。

pip install ipython-sql

投稿2017/06/28 08:12

pashango2

総合スコア930

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

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

tf23yh8df3

2017/06/28 08:35

ありがとうございます。 インストールして再度、`jupyter notebook` しましたが、変化なしです。 ・インストールパッケージ ipykernel==4.6.1 ipython==6.1.0 ipython-sql==0.3.8 jupyter-client==5.1.0 notebook==5.0.0 SQLAlchemy==1.1.11 sqlparse==0.2.3
pashango2

2017/06/28 09:35 編集

確認です、セルの入力は In [1]: %load_ext sql In [2]: %%sql ...: select a, b, c where test; という入力でエラーになっているのですか?
magichan

2017/06/28 10:55

なるほど、そうゆう事ですね。 私はてっきり load_ext でエラーになっていると思ってました。 おそらくセルには質問の最初にあるsql文が記述されていて、そこでエラーが発生しているのでしょうね。
pashango2

2017/06/29 07:06

私も最初はそう思ってました、でも load_extでのエラーならあのエラー文はおかしいです。 おそらくですがload_extは成功していますね、それ以降のマジックコードの使い方に問題があるのだと思います。
tf23yh8df3

2017/06/30 07:38

pashango2様 お騒がせしました。 マジックコード「%%sql」をつければSQLの補完が効くと思っていました。 「%load_ext sql」と「db接続」を済ませることでエラーでなくなりました。
guest

0

自己解決

以下の手順で %%sql は使用可能

python

1%load_ext sql 2% %sql mysql+pymysql://username:password@localhost/dbname?charset=utf8 3%%sql 4select * from test;

投稿2017/06/30 07:36

tf23yh8df3

総合スコア60

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問