为Django设置Cassandra - “ImportError:没有名为pycassa的模块”

时间:2011-02-08 04:10:39

标签: java django cassandra virtualenv pycassa

我已遵循本指南:https://github.com/ericflo/twissandra

已经安装了包含所有依赖项的Pycassa。一切运行顺利,但正在运行python manage.py sync_cassandra给出消息:

ImportError: No module named pycassa

所以我运行Python交互式解释器并输入import pycassa并且该命令成功运行,没有错误。

运行

import sys
sys.path

会给出消息:

['', '/home/z/twiss/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg', '/home/z/twiss/lib/python2.6/site-packages/pip-0.8.2-py2.6.egg', '/home/z/twiss/lib/python2.6', '/home/z/twiss/lib/python2.6/plat-linux2', '/home/z/twiss/lib/python2.6/lib-tk', '/home/z/twiss/lib/python2.6/lib-old', '/home/z/twiss/lib/python2.6/lib-dynload', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/home/z/twiss/lib/python2.6/site-packages', '/usr/local/lib/python2.6/dist-packages/pycassa-1.0.5-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/virtualenv-1.5.1-py2.6.egg', '/usr/local/lib/python2.6/site-packages', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0']

site-packages在列表中。但我有点困惑,因为这是在虚拟环境

我不知道发生了什么以及该怎么做

2 个答案:

答案 0 :(得分:2)

尝试编辑tweets / management / commands / sync_cassandra.py以包含

import sys
print sys.path

在顶部。确保这包括pycassa所在的目录。例如,我在twiss / lib / python2.6 / site-packages中有一个pycassa目录。

顺便说一下,ericflo的回购已经过时了 - 你会想要使用this version,直到他接受了拉动请求。

答案 1 :(得分:0)

可能缺少pycassa包,我会尝试以下操作,并建议将必要的包存储在需求文件中,并像这样利用冻结/安装。

解决pycassa错误的第一个问题:

pip install pycassa
     

enter image description here

一旦满足python项目的所有要求,就将所需的包输出到requirements.txt,就像NodeJS的package.json一样。

  • 冻结:将当前包输出到requirements.txt文件
  • 安装:将requirements.txt中所需的所有软件包安装到Python环境中
pip freeze > requirements.txt
pip install -r requirements.txt