Tracを新規にインストールする機会があったので、メジャーバージョンアップしたPython3.0も一緒に入れてみた。
現在の最新版は3.0.1でこちらから入手可能。
http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz
さくっとmakeしてインストール。
以前、TracのPlugin入れたときに、Pythonのデフォルトエンコーディングがasciiで嵌ったので(Trac0.11導入 - Develop with pleasure!)、Python3.0になってどう変わったのか確認してみる。
python3.0 >>> import sys >>> sys.getdefaultencoding() 'utf-8' >>>
と、無事デフォルトエンコーディングはUTF-8になってる。素晴らしい。
Python2.6.1以前は、Pythonのインストールディレクトリ/lib/python2.6/site-package直下にsitecustomize.pyファイルを作成し
import sys sys.setdefaultencoding('utf-8')
と記載しておけば、デフォルトエンコーディングがUTF-8になる。
続いてpythonのパッケージ管理ツールであるsetuptoolsをインストール。こちらからez_setup.pyを入手。
http://peak.telecommunity.com/dist/ez_setup.py
そして、インストール。
python3.0 ez_setup.py File "ez_setup.py", line 98 except pkg_resources.VersionConflict, e: ^ SyntaxError: invalid syntax
と、エラー発生。python2.5の時は大丈夫だったのに。
ez_setup.py自体2to3コマンドでPython3用のコードに書き直さないと動作しないのね…。てことで2to3でPython3用のコードにコンバートして再度実行する。
2to3 -w ez_setup.py python3.0 ez_setup.py Downloading http://pypi.python.org/packages/3.0/s/setuptools/setuptools-0.6c9-py3.0.egg Traceback (most recent call last): File "ez_setup.py", line 194, in main import setuptools File "/usr/local/src/setuptools-0.6c9/setuptools/__init__.py", line 2, in <module> from setuptools.extension import Extension, Library File "/usr/local/src/setuptools-0.6c9/setuptools/extension.py", line 2, in <module> from dist import _get_unpatched ImportError: No module named dist During handling of the above exception, another exception occurred: Traceback (most recent call last): File "ez_setup.py", line 266, in <module> main(sys.argv[1:]) File "ez_setup.py", line 198, in main egg = download_setuptools(version, delay=0) File "ez_setup.py", line 146, in download_setuptools src = urllib.request.urlopen(url) File "/usr/local/python-3.0.1/lib/python3.0/urllib/request.py", line 122, in urlopen return _opener.open(url, data, timeout) File "/usr/local/python-3.0.1/lib/python3.0/urllib/request.py", line 364, in open response = meth(req, response) File "/usr/local/python-3.0.1/lib/python3.0/urllib/request.py", line 476, in http_response 'http', request, response, code, msg, hdrs) File "/usr/local/python-3.0.1/lib/python3.0/urllib/request.py", line 402, in error return self._call_chain(*args) File "/usr/local/python-3.0.1/lib/python3.0/urllib/request.py", line 336, in _call_chain result = func(*args) File "/usr/local/python-3.0.1/lib/python3.0/urllib/request.py", line 484, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 404: Not Found
とのエラー。
http://pypi.python.org/packages/3.0/s/setuptools/setuptools-0.6c9-py3.0.egg
確かに404NotFound。まだPython3.0用のsetuptoolsは無いのね…。
Setuptools and easy_install for Python 3! « Lennart Regebro: Python, Plone, Web
同じく、エラーになって、Python3.0用のsetuptoolsを開発中みたい…。
まだPython3.0でTracは早いか…。