0

私はPythonClouldStackAPIを使用してclouldプロバイダーに接続しています。

 cloudstack = CloudStack.Client()

$ HOMEで、APIクレデンシャルを使用して次のファイルを作成する必要があります。

/root/.cloudstack

コマンドラインからrootからpythonスクリプトを実行すると、動作します。しかし、runitを使用してスクリプトを実行すると、以下のエラーが発生します。

Traceback (most recent call last):
  File "/home/ubuntu/workspace/rtbopsConfig/rtb_remote_services/remote_chef_dp_redis_monitor.py", line 27, in <module>
    import chefUtilities as chefu
  File "/home/ubuntu/workspace/rtbopsConfig/classes/chefUtilities.py", line 29, in <module>
    import dpClouldStack as dpu
  File "/home/ubuntu/workspace/rtbopsConfig/classes/dpClouldStack.py", line 1, in <module>
    import CloudStack
  File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/__init__.py", line 1, in <module>
    from Client import Client
  File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/Client.py", line 1, in <module>
    from BaseClient import BaseClient
  File "/usr/local/lib/python2.7/dist-packages/CloudStack-0.1-py2.7.egg/CloudStack/BaseClient.py", line 12, in <module>
    config_file = env + '/.cloudstack'
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

これが私のrunit実行ファイルの外観です。

#!/bin/sh
exec 2>&1
exec /usr/bin/python /home/ubuntu/workspace/test.py >> /tmp/remote_chef_elb_monitor.out 2>&1

それで...runitはrootの下で実行されていますか?もしそうなら、それは/root/.cloudstackをファイルしませんか?

4

1 に答える 1

0

あなたはコードを示さないenvので、私はあなたの変数がであると私が言うことができる限りにおいてのみ助けることができますNone。すべての状況で正しく返されない関数から取得するか、他の問題が発生します。

于 2012-07-19T15:00:58.980 に答える