安装Graphite + Statsd时出现未知的carbon-cache错误

12

我正在按照这篇指南 (https://www.digitalocean.com/community/tutorials/how-to-install-and-use-graphite-on-an-ubuntu-14-04-server) 安装statsd和graphite,但是遇到下面的问题。看起来不是graphite的问题,而是python的问题。有人知道如何解决吗?

~/build > sudo service carbon-cache start
 * Starting Graphite backend daemon carbon-cache
Traceback (most recent call last):
  File "/usr/bin/carbon-cache", line 32, in <module>
    run_twistd_plugin(__file__)
  File "/usr/lib/python2.7/dist-packages/carbon/util.py", line 90, in run_twistd_plugin
    config.parseOptions(twistd_options)
  File "/usr/local/lib/python2.7/dist-packages/twisted/application/app.py", line 604, in parseOptions
    usage.Options.parseOptions(self, options)
  File "/usr/local/lib/python2.7/dist-packages/twisted/python/usage.py", line 269, in parseOptions
    raise UsageError("Unknown command: %s" % sub)
twisted.python.usage.UsageError: Unknown command: carbon-cache

这个 bug 在这里有一点记录,但仍然找不到解决方案:http://osdir.com/ml/ubuntu-bugs/2014-07/msg06664.html - user2574872
你正在遵循哪些指示,它们需要Python 3吗?我进行了快速搜索,并看到了引用“python3.2”的指示。 - admdrew
我正在使用Python 2.7..有没有办法让它指向Python 3? - user2574872
我更新了指令。 - user2574872
由于我正在使用Python 2.7,所以我不想实际切换..但只是想检查是否可以将Graphite指向Python 3(以防这是导致错误的原因)..在说明中,我没有看到需要使用Python 3,所以我认为其他地方出了问题。 - user2574872
显示剩余2条评论
2个回答

20

我遵循了相同的指示,也遇到了相同的问题。

移动或删除/usr/local/lib/python2.7/dist-packages/twisted目录也为我解决了该问题。

您可以使用例如以下命令来更改有问题的目录的名称:

mv /usr/local/lib/python2.7/dist-packages/twisted /usr/local/lib/python2.7/dist-packages/twisted2

然后再次使用sudo service carbon-cache start启动。

背景

我在我的Ubuntu 14.04机器上遇到了同样的问题。一些调查表明,我的机器上有两个几乎相同的区域用于Twisted插件。

/usr/local/lib/python2.7/dist-packages/twisted

/usr/lib/python2.7/dist-packages/twisted

我不确定这两个区域的起源。也许一个随着发行版而来,另一个是通过手动pip install twisted安装时创建的。我怀疑当我使用pip安装软件包时,/usr/local/lib/python2.7/dist-packages/区域会填充内容。所以,这个问题最终可能归因于用户(例如我)通过pipapt软件包系统安装了twisted

无论如何,通过这些区域的差异,可以看出与carbon有关的文件被安装到了/usr/lib/python2.7/dist-packages/区域。 dpkg -L graphite-carbon还表明,软件包文件放在/usr/lib/python2.7/dist-packages/区域中。

然而,当运行carbon启动脚本时,似乎使用了/usr/local/lib/python2.7/dist-packages/twisted/plugins区域,导致找不到插件。

我认为这个问题与模块搜索路径有关。正如下面所示,在我的默认路径中,/usr/local/lib/python2.7/dist-packages//usr/lib/python2.7/dist-packages/之前。

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 
 '/usr/lib/python2.7', 
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk', 
 '/usr/lib/python2.7/lib-old', 
 '/usr/lib/python2.7/lib-dynload', 
 '/usr/local/lib/python2.7/dist-packages', 
 '/usr/lib/python2.7/dist-packages', 
 '/usr/lib/python2.7/dist-packages/PILcompat', 
 '/usr/lib/python2.7/dist-packages/gtk-2.0', 
 '/usr/lib/pymodules/python2.7', 
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
>>> 

很高兴知道解决方案有所帮助!你可以给我的答案点个赞吗? - user2574872

12

由于某些原因,Twisted影响了Graphite的运行。在网上看到手动删除Twisted可以解决此问题。尝试了一下,现在已经解决了。

刚刚完成了操作。

 sudo rm -rf /usr/local/lib/python2.7/dist-packages/twiste*

4
这行代码有效。然而,记住孩子们,在执行来自互联网上某个用户2574872的"rm -rf"命令之前,应该检查这是否是你真正想要做的事情。 - cgf
1
"pip uninstall twisted" 对我很有帮助,顺便删除了这些文件。 - Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接