46

就職に困ってpyodbcいます。Linux Mint 14にunixodbc, unixodbc-dev, odbc-postgresql,pyodbcパッケージがインストールされています。以下の詳細を参照してください。

ランニング:

>>> import pyodbc
>>> conn = pyodbc.connect("DRIVER={PostgreSQL};SERVER=localhost;DATABASE=test;USER=openerp;OPTION=3;")

私に与えます:

>>> pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

# odbcinst -j は:

unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/atman/.odbc.ini
SQLULEN Size.......: 4
SQLLEN Size........: 4
SQLSETPOSIROW Size.: 2

unixodbcこれは、構成に問題があると思います。ここに私のunixodbc設定ファイルの内容があります:

ファイル /etc/odbcinst.ini:

[PostgreSQL ANSI]
Description     = PostgreSQL ODBC driver (ANSI version)
Driver      = psqlodbca.so
Setup       = libodbcpsqlS.so
Debug       = 0
CommLog     = 1
UsageCount      = 2

[PostgreSQL Unicode]
Description     = PostgreSQL ODBC driver (Unicode version)
Driver      = psqlodbcw.so
Setup       = libodbcpsqlS.so
Debug       = 0
CommLog     = 1
UsageCount      = 2

ファイル /etc/odbc.ini :

[PostgreSQL test]
Description         = PostgreSQL 
Driver              = PostgreSQL ANSI
Trace               = No
TraceFile           = /tmp/psqlodbc.log
Database            = template1
Servername          = localhost
UserName            =
Password            =
Port                =
ReadOnly            = Yes
RowVersioning       = No
ShowSystemTables    = No
ShowOidColumn       = No
FakeOidIndex        = No
ConnSettings        =

ファイル ~/.odbc.ini:

[DEFAULT]
Driver = PostgreSQL

[PostgreSQL]
Description         = Test to Postgres
Driver              = PostgreSQL
Trace               = Yes
TraceFile           = sql.log
Database            = nick
Servername          = localhost
UserName            =
Password            =
Port                = 5432
Protocol            = 6.4
ReadOnly            = No
RowVersioning       = No
ShowSystemTables    = No
ShowOidColumn       = No
FakeOidIndex        = No
ConnSettings        =
4

6 に答える 6

26

あなたの問題に対する答えは、 ~/.odbc.ini ファイルでドライバーを使用するように言っているがPostgreSQL、 /etc/odbcinst.ini ファイルでそのドライバーを定義していないことだと思います。orに変更PostgreSQLしてみてください(どちらも /etc/odbcinst.ini で定義されています)。PostgreSQL ANSIPostgreSQL Unicode

于 2013-04-29T14:16:02.517 に答える
1

この同じ一般的なエラーをトラブルシューティングする他の人のために、odbc.ini ファイルの先頭に余分な文字を誤って追加していないことを確認してください。特定の問題の)。

于 2016-09-22T18:19:23.070 に答える