5

psycopg2を介してPostgreSQLを使用するPythonアプリケーションをセットアップしようとしていますが、インポート時にモジュールが失敗し続けます。

ImportError: Permission denied

グローバルとvirtualenvの両方でpipを使用してpsycopg2をインストールしました

環境は次のとおりです:(XP x86上のCygwin)

Python 2.6.8 (unknown, Jun  9 2012, 11:30:32)
[GCC 4.5.3] on cygwin

モジュールのインポート:

[12:49:45] /usr/lib/python2.6/site-packages/psycopg2 $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/psycopg2/__init__.py", line 67, in <module>
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: Permission denied

問題のあるモジュールは_psycopg、_psycopg.dllです。名前を変更すると、期待どおりにモジュールが見つかりません。

[12:50:01] /usr/lib/python2.6/site-packages/psycopg2 $ mv _psycopg.dll X_psycopg.dll
[13:00:53] /usr/lib/python2.6/site-packages/psycopg2 $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/psycopg2/__init__.py", line 67, in <module>
    from psycopg2._psycopg import BINARY,
ImportError: No module named _psycopg

ファイルのアクセス許可:

-rwxr-xr-x 1 L0009813 Ninguno 739979 jul 16 12:11 _psycopg.dll

ユーザー情報:

[13:01:40] /usr/lib/python2.6/site-packages/psycopg2 $ id
  uid=1008(L0009813) gid=513(Ninguno) grupos=513(Ninguno),0(root),544(Administradores),545(Usuarios)

PostgreSQLが正しくインストールされ(9.1)、pgAdminを試し、データベースを作成してアクセスできましたが、PGSQLに接続しようとする前に問題が発生すると思います。

DLLファイルの移動や削除などができます。AFAIK、他のユーザーは操作に関与していません。見つけたものをすべて検索して試しましたが、解決策が見つかりません。非常にイライラします。私は彼のプロセスの細部が欠けていると確信しています。

4

1 に答える 1

3

pip を使用してインストールすると、umask が非常に制限的に設定されることが知られています。実行してみてください:

sudo chmod -R a+rX /usr/lib/python2.6/site-packages

(大文字の X に注意してください。ディレクトリへの実行権限のみが適用されます。)

于 2015-03-02T09:27:52.423 に答える