2012-07-16 26 views
4

我试图设置一个通过psycopg2使用PostgreSQL的Python应用程序,但是导入它时模块仍然失败。ImportError:导入psycopg2模块时权限被拒绝

ImportError: Permission denied 

我同时使用全局和virtualenv中

环境PIP安装psycopg2如下:(Cygwin的在XP X86)

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,如果我重命名它,模块canno如预期的那样被发现。

[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,没有其他用户参与操作,我搜索并尝试了我找到的一切,但我无法找到解决方案,它是非常令人沮丧,因为我确信我错过了他在处理过程中的一个小细节。

回答

3

使用pip安装已知可以将umask设置为非常严格。试试运行:

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

(心灵资本X;它只会应用执行权限的目录。)

+0

谢谢多米尼克,我会尝试这种方法 – jmoreno 2015-03-02 09:29:16