0

我在我的 MacOsX 开发盒上安装了 pgdb 模块,我的代码可以工作(特别是 pgdb.connect(etc..) 的行很好用。我在我的主服务器(linux)上运行了他的代码,它说模块没有属性连接。

我认为这是一个版本问题,所以我按照这里的建议来查看版本:

如何检查python模块的版本?

那是我做的:

python
import pgdb
print pgdb.__version__

在我的 macosX 机器上,在我的开发机器上返回版本就好了,它再次给出错误:

AttributeError: 'module' object has no attribute '_version_'

奇怪的是,导入 pgdb 不会引发错误,但它的行为就像它没有安装在我的生产机器上一样。也许这是一个图书馆在我不知道的盒子上弄坏了?我应该说 import pgdb as myspecialsomething (没有这样做仍然说没有连接)?

另一件事是,我做了一个健全性检查,并在生产盒上做了一个 sudo pip install pgdb 并得到了这个:

Requirement already satisfied: pgdb in /usr/lib/python2.7/site-packages

已满足要求:/usr/lib64/python2.7/site-packages 中的 psycopg2>=2.5.2(来自 pgdb)

此外,现在这不是名称冲突的问题,就像一张海报认为可能是重复的一样。其他事情正在发生,尽管有趣的是,当我检查我的 os x 正在使用的文件和我的 centos 用于 pgdb 的文件时,我得到了两个不同的答案:(路径不会让我感到惊讶,但文件本身会)

macOS X:

 >>> pgdb.__file__
 '/usr/local/lib/python2.7/site-packages/pgdb.pyc'

中央操作系统:

 >>> pgdb.__file__
 '/usr/lib/python2.7/site-packages/pgdb/__init__.pyc'

不知道有什么区别。

4

1 回答 1

0

您可能pgdb.py在当前工作目录中有文件,即您启动 Python 的目录。删除或重命名它,然后重试。

您可以通过以下方式找到模块所在的位置:

print pgdb.__file__

或者:

import os

print os.path.abspath(pgdb.__file__)
于 2017-01-17T23:10:40.957 回答