2

グラファイト監視システムを構成しています。https://gist.github.com/surjikal/2777886のチュートリアルに従うと、次のインポート エラーが発生しました。

python /opt/graphite/bin/carbon-cache.py start

Traceback (most recent call last):
  File "/opt/graphite/bin/carbon-cache.py", line 28, in <module>
    from carbon.util import run_twistd_plugin
  File "/opt/graphite/lib/carbon/util.py", line 21, in <module>
    from twisted.scripts._twistd_unix import daemonize
ImportError: cannot import name daemonize

グーグルで検索すると、この問題の解決策がいくつか見つかりました。

daemonize/opt/graphite/lib/carbon/util.py 1) ( https://answers.launchpad.net/graphite/+question/239063 )からインポートを削除します。

from time import sleep, time
from twisted.python.util import initgroups
from twisted.scripts.twistd import runApp
# from twisted.scripts._twistd_unix import daemonize
# daemonize = daemonize # Backwards compatibility

2) 上位のツイスト バージョンではなく、ツイスト 13.1.0 を使用します。

3) daemonizepip 経由でインストールし、直接インポートします( https://www.digitalocean.com/community/tutorials/installing-and-configuring-graphite-and-statsd-on-an-ubuntu-12-04-vps ):

# from twisted.scripts._twistd_unix import daemonize
import daemonize

ねじれた環境でこのインポートの問題を解決するための最も安定した実績のあるソリューションは何ですか?

4

2 に答える 2

1

FWIW、オプション(2)と(3)は、互いに独立して試したときにそれぞれうまくいきました。

(2) については、次のように実行しました。

pip install --user 'Twisted==13.1.0'

(2) は確かに (1) と (3) よりも堅牢に見えるので、可能であればそれを使用します。

私は以前、Web 上の他の場所で見つけたアドバイスに従い、Twisted<12.0 にダウングレードしましたが、(3) と組み合わせてしか機能しませんでした。

于 2014-12-23T00:31:35.757 に答える