我在我的 MacOsX 开发盒上安装了 pgdb 模块,我的代码可以工作(特别是 pgdb.connect(etc..) 的行很好用。我在我的主服务器(linux)上运行了他的代码,它说模块没有属性连接。
我认为这是一个版本问题,所以我按照这里的建议来查看版本:
那是我做的:
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'
不知道有什么区别。