• Ubuntuに関連したハード、ソフトの備忘録サイトです

Ubuntu14.04LTSでのDjango1.65用MySQLdbの在り処【暫定投稿】


※ $ python3 manage.py syncdbでデータベースのテーブルが正常に作成されませんでした。sessionテーブルの作成に失敗してしまいます。調査してみますが、取り敢えずはSQLite3でテストするのが無難です(最後に関連記事)。

やっぱり、Python3がいいですね。Djangoも1.6から正式にPython3に対応してきました。ということで、python3-pipをゲットし、pip3に名前を変えて、$ pip3 install djangoで最新版の1.65をインストールしたのですが、データベースをMySQLに変更すると、MySQLdbなるモジュールがないと怒られました。そんなものはすぐに見つかるだろうと思って探しに入ったのですが、これでハマってなかなか見当たりません。しかし、とうとう見つけることができました。

そのサイトは、https://github.com/davispuh/MySQL-for-Python-3でした。このサイトの画面右側にダウンロードボタンがありますので、ここからzipファイルを落として解凍すれば良かったです。ただし、site.cfgを変更する必要があります。

[options]
# embedded: link against the embedded server library
# threadsafe: use the threadsafe client
# static: link against a static library (probably required for embedded)

embedded = False
threadsafe = True
static = False

# For Linux, the path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
# mysql_config = /usr/local/bin/mysql_config
mysql_config = /usr/bin/mysql_config

# For Windows, the path to MySQL server directory.
# This has to be set for Windows builds to work.
mysql_location = C:\Program Files\MySQL\MySQL Server 5.5

つまり、mysql_configの在り処を変更する必要がありました。このmysql_configはlibmysqlclient18というパッケージの中に入っており、aptでインストールすると、/usr/binに入ります。ということで、上記の変更になります。あとは、unzipしたディレクトリで、

python3 setup.py build
sudo python3 setup.py install

で、MySQLdbモジュールが入ります。例のconglaturation !!画面は、

michiaki@ubuntu01:/srv/mysite$ python3 manage.py runserver
Validating models...

0 errors found
June 17, 2014 - 22:46:21
Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

とすると、開発用Webサーバーが動作してくれて、次のようになります。

django01

なお、最近は老舗のDjango、設計思想抜群のPyramidということになっているようですね。ともに、Python3に対応しています。日本はガラパゴス島ですから、世界標準がなかなか浸透しない。それでも、少しずつPython3の好著も揃ってきました。元気でガンバロー!!。

【参考】
Djangoでは、MySQL for Pythonを利用しているのでしたが、これは現在のところ、RedHat Enterprise Linux用のものです。それで、http://sourceforge.net/projects/mysql-python/を見ますと、「Python 3 support coming soon.」などと書かれています。ただし、いつ来るのか分かりません。試しに、Djangoの1.7ベータ版で試してみますと、python3  manage.py syncdbの動きが異なり、テーブルの作成の進行がもう少し進みました。ということで、Python3側とDjango側双方の対応を待つしかないようです。Ubuntu14.04LTSの場合、取り敢えずは、SQLite3で頑張りつつ、Python3版の完成を待つしかないように思われます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA