2

Python3.2のインストールからPostgreSQLに接続できないという奇妙な問題が発生しています。私はFedora15を実行しており、yumを使用してFedoraリポジトリーからPython3とPostgerSQL9をインストールしました。なぜ私がこの問題を目にしているのか、そしてそれを修正する方法について誰かが何か考えを持っていますか?グーグル検索は何も出てこなかった。

ユーザー名、パスワード、データベースを変更しましたが、pg_hba.confファイルは正しいです。

import postgresql
t = postgresql.open(user='validuser', password='secret', database='some_database')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python3.2/site-packages/postgresql/__init__.py", line 88, in open
    c.connect()
  File "/usr/lib64/python3.2/site-packages/postgresql/driver/pq3.py", line 2419, in connect
    pq = Connection3(sf, startup, password = password,)
  File "/usr/lib64/python3.2/site-packages/postgresql/protocol/client3.py", line 514, in __init__
    element.Startup(**startup), password
TypeError: keyword arguments must be strings

pq://user:password@host/database補足として、異なるユーザー、パスワード、データベースの組み合わせを使用して接続しようとした場合、およびローカルホストとリモートホストの両方にキーワードの代わりに接続文字列を使用した場合にも、同じエラーが発生します。

4

3 に答える 3

4

おそらくパッケージのバグだと思いますがpython3-postgresql、少し変更すれば動作するようです。このファイルを編集します(おそらく/usr/lib6464ビットインストールの場合)。

/usr/lib/python3.2/site-packages/postgresql/protocol/client3.py

変更(514行目):

element.Startup(**startup), password

に:

element.Startup(startup), password

その後、簡単な接続を行い(pg_hba.confホストメソッドをmd5に変更しました)、問題ないように見えます。

[grzegorz@localhost Desktop]$ python3
Python 3.2 (r32:88445, Feb 21 2011, 21:12:33) 
[GCC 4.6.0 20110212 (Red Hat 4.6.0-0.7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import postgresql
>>> db = postgresql.open("pq://grzegorz:12345@localhost/grzegorz")
>>> ps = db.prepare("SELECT version()")
>>> ps()
[('PostgreSQL 9.0.4 on i386-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.6.0 20110530 (Red Hat 4.6.0-9), 32-bit',)]
>>> ps = db.prepare("TABLE t")
>>> ps()
[(1, 'aaa'), (2, 'bbb'), (3, 'ccc')]
>>>
于 2011-07-13T23:01:48.820 に答える
0

推測ですが、Pythonはおそらくユニコードをpostgresに渡しており、文字列を期待しています。

于 2011-07-13T20:39:20.967 に答える
0

別のモジュール(psycopg2)を使用してpostgresqlに接続することもできます

http://initd.org/psycopg/download/

于 2011-07-15T23:39:21.213 に答える