我正在运行一个Python(2.7.10)Tornado(4.3)网络服务器,它使用基于psycopg2(2.6.1)的Momoko(2.2.2)与托管的Postgres实例进行通信。我的实现在我的MAC(OSX 10.11.1)上完美地工作,但当我推送到托管的Ubuntu(14.04.3)时,我得到一个ImportError。对于包含<{p}的example.py
import momoko
产量
$ python example.py
Traceback (most recent call last):
File "example.py", line 1, in <module>
import momoko
File "/usr/local/lib/python2.7/dist-packages/momoko/__init__.py", line 14, in <module>
from .connection import Pool, Connection, connect
File "/usr/local/lib/python2.7/dist-packages/momoko/connection.py", line 28, in <module>
from psycopg2.extras import register_json as _psy_register_json
ImportError: cannot import name register_json
我找了一些基本的“import traps”,但似乎无法找到解决方案。可能导致这种情况的任何想法?
非常感谢大家!
更新:添加pip freeze
的输出:
$ pip freeze
Cheetah==2.4.4
Jinja2==2.7.2
Landscape-Client==14.12
MarkupSafe==0.18
Momoko==2.2.2
PAM==0.4.2
PyYAML==3.10
Pygments==1.6
Sphinx==1.2.2
Twisted-Core==13.2.0
Twisted-Names==13.2.0
Twisted-Web==13.2.0
apt-xapian-index==0.45
argparse==1.2.1
backports-abc==0.4
backports.ssl-match-hostname==3.4.0.2
certifi==2015.11.20.1
chardet==2.0.1
cloud-init==0.7.5
colorama==0.2.5
configobj==4.7.2
docutils==0.11
geopy==1.11.0
greenlet==0.4.5
html5lib==0.999
httplib2==0.9.1
jsonpatch==1.3
jsonpointer==1.0
motor==0.4
oauth==1.0.1
oauth2client==1.5.1
prettytable==0.7.2
psycopg2==2.6.1
pyOpenSSL==0.13
pyasn1==0.1.8
pyasn1-modules==0.0.7
pycurl==7.19.3
pymongo==2.8
pyserial==2.6
python-apt==0.9.3.5ubuntu1
python-debian==0.1.21-nmu2ubuntu2
requests==2.2.1
roman==2.0.0
rsa==3.2
singledispatch==3.4.0.3
six==1.10.0
ssh-import-id==3.21
tornado==4.3
urllib3==1.7.1
virtualenv==12.1.1
wheel==0.24.0
wsgiref==0.1.2
zope.interface==4.0.5
答案 0 :(得分:2)
请确保您的Ubuntu计算机上有最新版本的psycopg2。我建议使用virtualenv并使用pip安装最新的psycopg2。
Ubuntu是Momoko的主要测试平台,所以这必定是一个环境问题。