5

我正在尝试设置一个通过 psycopg2 使用 PostgreSQL 的 Python 应用程序,但是导入它时模块一直失败。

ImportError: Permission denied

我已经在全局和 virtualenv 中使用 pip 安装了 psycopg2

环境如下:(Cygwin on 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,如果我重命名它,则无法按预期找到该模块。

[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 回答