ImportError:导入psycopg2模块时权限被拒绝

时间:2012-07-16 11:34:22

标签: python cygwin psycopg2

我正在尝试设置一个通过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,没有其他用户参与操作,我搜索并尝试了我发现的所有内容,但我找不到解决方案,它非常令人沮丧,因为我确信我在过程中缺少一个小细节。

1 个答案:

答案 0 :(得分:3)

已知使用pip进行安装会对umask设置非常严格的限制。尝试运行:

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

(注意大写X;它只会对目录应用执行权限。)