
Ubuntu日本語フォーラム

ログインしていません。
こんにちは。どうしても解決できないので質問させてください。
コードの問題ではなく、インストールの問題です。
環境:
OS Ubuntu11.04
python2.7.1
sqlite3.7.6.3
したいこと:
UbuntuにインストールしたxamppにPythonをインストールし、ローカルなWeb環境で、CGIとしてpythonを動作させ、標準ライブラリのsqlite3を使ってデータベースの作成や操作を行うこと。
質問までの経緯:
xamppはインストール済みで、さらにそのxamppの上にソースコードからpython2.7.1をインストールしました。xamppへのインストールは次のような手順で行いました。
cd /opt/lampp
sudo wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
sudo tar xzf Python-2.7.1.tgz -C /opt/lampp
cd Python-2.7.1
./configure --prefix=/opt/lampp --enable-shared
export LD_LIBRARY_PATH=/opt/lampp/lib:/usr/lib/:/usr/local/lib:/var/lib
export LD_RUN_PATH=/opt/lampp/lib:$LD_RUN_PATH
sudo make
sudo make install
これでウェブブラウザから見たときに単純にHello,Worldは表示できました。例えば単純な以下のようなコードです。
#! /opt/lampp/bin/python
#coding=utf-8
print("Content-type: text/html\n")
print("<html><body>Hello,World!</body></html>")
しかしsqlite3をインポートしようとするとエラーがでます。そこで
http://d.hatena.ne.jp/dekaduki/20090301/1235919255
このWebサイトに書いてあるとおり、xamppにsqlite3が入っていないことが原因のようでしたので、今度はsqlite3をソースコードからxamppにインストールし、その後再びpython2.7.1を前述の手順と全く同じ方法でインストールしました。
ダウンロードしたsqlite3のソースコードは
http://www.sqlite.org/download.html
のsqlite-autoconf-3070603.tar.gzです。
しかし次もエラー。エラーログを見ると次のような記述がありました。
/opt/lampp/lib/python2.7/lib-dynload/_sqlite3.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8
調べてみると以下のようなWebページに突き当たりました。
http://effbot.org/pyfaq/when-importing-module-x-why-do-i-get-undefined-symbol-pyunicodeucs2.htm
解決策は
The only way to solve this problem is to use extension modules compiled with a Python binary built using the same size for Unicode characters.
(Pythonがビルドされたのと同じサイズのユニコードでコンパイルされた拡張モジュールを使うしか解決方法がない:和訳が間違ってたら教えてください)
とのことでした。
そこで、
http://www.rosettacommons.org/node/1795
このページにあるようにPythonの./configureに --enable-unicode=ucs2 のオプションをつけて再度、最初に書いた通りインストールし直しました。
(sqlite3の./configureオプションには--enable-unicode=ucs2は使えませんでした)
しかし今度はApacheが立ち上がらなくなりました。
Apacheのエラーは
httpd: Syntax error on line 509 of /opt/lampp/etc/httpd.conf: Syntax error on line 5 of /opt/lampp/etc/extra/httpd-xampp.conf: Cannot load /opt/lampp/modules/libphp5.so into server: /opt/lampp/modules/libphp5.so: undefined symbol: sqlite3_column_table_name
でした。
PHPは今のところ使わないので、
httpd-xampp.confの中の5行目
LoadModule php5_module modules/libphp5.so
をコメントアウトするとApacheは立ち上がりました。
しかしhttp://localhost/xampp/が開けなくなり、さらに相変わらずimport sqlite3でユニコードのエラーがでます。
質問:
もはや自分では解決策が見当たらないのですが、pythonでsqlite3のimportを行うにはどうしたらよいのでしょうか。
本当に困っています…
オフライン
自己解決しました。
Pythonインストール時、ucs2ではなくucs4を使うとOKでした。
お騒がせしました。
オフライン