ラベル python の投稿を表示しています。 すべての投稿を表示
ラベル python の投稿を表示しています。 すべての投稿を表示

2014年2月3日月曜日

Python3.3.3でdistributeインストール中のエラー

ランチ食べ過ぎて若干苦しい昼下がり、
Python3.3.3環境を作ってみたところ、distributeのインストールでこけましたとさ。 環境は、VagrantのCentOS6.5環境
curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py

Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
Traceback (most recent call last):
  File "distribute_setup.py", line 556, in 
    sys.exit(main())
  File "distribute_setup.py", line 552, in main
    tarball = download_setuptools(download_base=options.download_base)
  File "distribute_setup.py", line 211, in download_setuptools
    src = urlopen(url)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 156, in urlopen
    return opener.open(url, data, timeout)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 475, in open
    response = meth(req, response)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 587, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 507, in error
    result = self._call_chain(*args)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 447, in _call_chain
    result = func(*args)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 692, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 469, in open
    response = self._open(req, data)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 492, in _open
    'unknown_open', req)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 447, in _call_chain
    result = func(*args)
  File "/home/ono/.pythonz/pythons/CPython-3.3.3/lib/python3.3/urllib/request.py", line 1310, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib.error.URLError: 

stackoverflow先生によるとopenssl-develが必要らしい
http://stackoverflow.com/questions/18833442/installing-distribute-for-python-3-3
しかも、openssl-develインストール済みの状態でpyothon3をビルドしないとダメっぽい。

openssl-develを忘るべからず

yum install openssl-devel.x86_64
pythonz uninstall 3.3.3
pythonz install 3.3.3
curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
ちなみにpythonzで入れた3.3.3のpythonのシンボリックリンクがpython3-configに向いてるんですが・・・・
びっくりした・・・。ので、リンク張り直した。
python -> ~/.pythonz/pythons/CPython-3.3.3/bin/python3.3-config

rm -f ~/.pythonz/pythons/CPython-3.3.3/bin/python
ln -s ~/.pythonz/pythons/CPython-3.3.3/bin/python3.3 ~/.pythonz/pythons/CPython-3.3.3/bin/python

stackoverflow先生今日もありがとう!

2013年11月10日日曜日

Python 3.3.2でmysql-connector-pythonを試す

Python3.3.2でmysql-connnector-pythonを試してみました。

1. pipでインストール

pip install mysql-connector-python
pipではインストールできませんでした。ドキュメントでは3.1は対応しているようなのですが無理っぽいですね。
$ pip install mysql-connector-python
途中省略
error: invalid command 'egg_info'

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_user/mysql-connector-python
Storing complete log in /path/to/.pip/pip.log

2. MySQL Connector/Pythonを確認

ChangeLogを確認したところ
1.1.0の開発版からprint()文に変更されているので、Python3系の対応が行われているっぽい
http://dev.mysql.com/doc/relnotes/connector-python/en/news-1-1-0.html

いずれにせよ安定版ではないので、少しでもバグフィックが多い最新バージョンの1.1.2をインストールしてみます。
Changes in MySQL Connector/Python 1.1.2 (2013-10-23)

ちなみにまだリリースされていない1.1.3の情報では、sjisなどバックスラッシュ(0x5c)問題があるようなので、sjisを扱う場合は導入はまだ難しいようです。
Changes in MySQL Connector/Python 1.1.3 (Not yet released)

3. ソースコードでインストール

ソースコードはこちらから http://dev.mysql.com/downloads/connector/python/
curl -L -o mysql-connector-python-1.1.2.tar.gz "http://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-1.1.2.tar.gz/from/http://cdn.mysql.com/"
tar zxfv mysql-connector-python-1.1.2.tar.gz
mysql-connector-python-1.1.2
python setup.py install

4. 動作確認

$ python
Python 3.3.2 (default, Nov  3 2013, 19:17:12)
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>> config = {
...    'user': 'username',
...    'password': 'password',
...    'host': '127.0.0.1',
...    'database': 'databasename',
... }
>>> cnx = mysql.connector.connect(**config)
>>> cur = cnx.cursor(buffered=True)
>>> cur.execute("SHOW STATUS LIKE 'Uptime'")
>>> print(cur.fetchone())
('Uptime', '678')
>>> cur.close()
True
>>> cnx.close()
簡単な動作確認ですが、動作しました。

2013年10月5日土曜日

pip listのAssertionError

メモから再開する逆襲のエンジニアブログ

久しぶりにOSXでpython環境を作成したところ、
いきなりpip listでAssertionError

追記 2013-10-06 Debian 7.1でも同様のAssertionErrorを確認
$ pip list
distribute (0.6.49)
pip (1.4.1)
Exception:
Traceback (most recent call last):
  File "/Users/foo/.pythonz/pythons/CPython-3.3.2/lib/python3.3/site-packages/pip-1.4.1-py3.3.egg/pip/basecommand.py", line 134, in main
    status = self.run(options, args)
  File "/Users/foo/.pythonz/pythons/CPython-3.3.2/lib/python3.3/site-packages/pip-1.4.1-py3.3.egg/pip/commands/list.py", line 80, in run
    self.run_listing(options)
  File "/Users/foo/.pythonz/pythons/CPython-3.3.2/lib/python3.3/site-packages/pip-1.4.1-py3.3.egg/pip/commands/list.py", line 127, in run_listing
    self.output_package_listing(installed_packages)
  File "/Users/foo/.pythonz/pythons/CPython-3.3.2/lib/python3.3/site-packages/pip-1.4.1-py3.3.egg/pip/commands/list.py", line 136, in output_package_listing
    if dist_is_editable(dist):
  File "/Users/foo/.pythonz/pythons/CPython-3.3.2/lib/python3.3/site-packages/pip-1.4.1-py3.3.egg/pip/util.py", line 347, in dist_is_editable
    req = FrozenRequirement.from_dist(dist, [])
  File "/Users/foo/.pythonz/pythons/CPython-3.3.2/lib/python3.3/site-packages/pip-1.4.1-py3.3.egg/pip/__init__.py", line 194, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

もうstackoverflowなしじゃ生きていけない・・・
http://stackoverflow.com/questions/18542633/pip-list-error-124-installing-on-mac-os-x

というわけで、distributeをアップデートして対策完了
$ pip install -U distribute

$ pip list
distribute (0.7.3)
pip (1.4.1)
setuptools (0.6c11)
stevedore (0.12)
virtualenv (1.10.1)
virtualenv-clone (0.2.4)
virtualenvwrapper (4.1.1)