2015-12-06 19 views
0

我正在運行Python(2.7.10)Tornado(4.3)webserver,它使用基於psycopg2(2.6.1)的Momoko(2.2.2)與託管Postgres實例通信。我的實現在我的MAC(OSX 10.11.1)本地完美工作,但是當我推送到託管Ubuntu(14.04.3)時,我得到一個ImportError。對於含有使用Momoko的Postgresql Python Tornado:ImportError

import momoko 

example.py產生

$ 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

請提供pip凍結輸出 – kwarunek

+0

@kAlmAcetA完成。那裏有什麼見解? – drdawud

+0

它是全球還是virtualenv?嘗試使用--no-site-packages將其安裝在virtualenv中 – kwarunek

回答

2

請確保您有最新psycopg2的版本,你的Ubuntu機器上。我建議使用virtualenv並使用pip安裝最新的psycopg2。

Ubuntu是Momoko的主要測試平臺,所以這一定是一個環境問題。

+0

謝謝!我會給你一個鏡頭。 – drdawud

+0

問題在於psycopg2的舊版本安裝在操作系統級別,在pip中佔據了較高版本。通過virtualenv或'apt-get remove'解決。謝謝! – drdawud