我在我的MacOsX开发盒上安装了pgdb模块,我的代码工作(特别是pgdb.connect(等等)的行很好用。我在我的主服务器(linux)上运行代码并且它说它模块没有属性连接。
我认为这是一个版本问题,因此我按照此处的建议查看版本:
How to check version of python modules?
我就是这样做:
python
import pgdb
print pgdb.__version__
在我的macosX框中,在我的开发机器上返回版本就好了它再次出错:
AttributeError: 'module' object has no attribute '_version_'
奇怪的是,执行导入pgdb不会抛出错误,但它的作用就像它没有安装在我的生产盒上。也许这是一个我不知道的盒子上的图书馆?我应该说导入pgdb作为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'
CentOS的:
>>> pgdb.__file__
'/usr/lib/python2.7/site-packages/pgdb/__init__.pyc'
不知道差异。
答案 0 :(得分:0)
您当前的工作目录中可能有文件pgdb.py
,即您从中启动Python的目录。删除或重命名,然后重试。
您可以找到模块所在的位置:
print pgdb.__file__
或:
import os
print os.path.abspath(pgdb.__file__)