2012-01-11 10 views
0

この記事は、Ubuntu Linux 10の下で、Python 2.6.5を使用しています。Djangoのカスタム管理コマンドは時々動作しますが、時にはパスに依存しません

私はdjangoプロジェクトの呼び出しで新しいカスタムコマンドを作成しましたtaskserver

私は/opt/acme/python-site/acme/であると私は

python manage.py taskserver 

を実行するカスタムコマンドが正常に開始されたプロジェクトディレクトリ(で午前

私は/opt/acme/にいるときは、次のコマンドは、私のカスタムtaskserverコマンドを実行します。:

python /opt/acme/python-site/acme/manage.py taskserver 

私が/opt/acme/deploy/にいるとき、次のコマンド上記のように)私のカスタムtaskserverコマンドを実行に失敗:

Unknown command: 'taskserver' 
Type 'manage.py help' for usage. 

現在の場所は、私は私のmanage.pyファイルへのフルパスを指定していていても重要な理由を任意のアイデア:

python /opt/acme/python-site/acme/manage.py taskserver 

それはそれを文句? deployディレクトリにあるファブリックスクリプトからこのコマンドを実行する必要があります。どのようにこの作品を作るための任意の提案?

+0

[http://stackoverflow.com/questions/1601153/django-custom-command-and-cron](http://stackoverflow.com/questions/1601153/django-custom-command-and -cron) – danihp

答えて

2

で、/opt/acme/ DIRにある管理パッケージとアプリケーションは、あなたのPYTHONPATHにあることを確認します。 taskserver.pyはmanage.pyのために完全なパスを指定して一般的に/opt/acme/python-site/acme/management/commands/taskserver.py

env PYTHONPATH=$PYTHONPATH:/opt/acme/python-site/acme python /path/to/manage.py taskserver 

、である場合などは、必ずしもあなたのPYTHONPATH正しく設定されていないでしょう。

ファブリックには、PYTHONPATH環境を設定する独自の方法がある場合もありますが、わかりません。しかし、envを使用することは関係なく動作するはずです。

+0

また、これはファブリックで動作させる別の方法です: 'cd/opt/acme/python-site/acme/&& python manage.py taskserver' –

0

あなたが/opt/acme/deploy/にいるとき、あなたが戻って、前のディレクトリに移動する必要があります。この

python ../python-site/acme/manage.py taskserver 

を試してみてください。 ../によって、あなたはここにmanage.pyへのパスが../python-site/acme/manage.py

+0

残念ながら、これは動作しませんでした。 –

関連する問題