2012-05-04 8 views
2

カスタムDjango管理コマンドを実行するためにcronを実行しようとしています。私はDotCloudで走っています。Django管理コマンドCron on Dotcloud

のcronが実行されると、私は次のエラーを取得する:

Traceback (most recent call last): 
File "./manage.py", line 2, in <module> 
from django.core.management import execute_manager 
ImportError: No module named django.core.management 

私はcronのは、裸の環境で実行されているので、これはあると思いますので、私は手動で同じのcronでPYTHONPATHを設定しようとしました。ここでは、そのコマンドがある...

PYTHONPATH=/home/dotcloud/env/lib/python2.6/site-packages/setuptools-0.6c11-  
py2.6.egg:/home/dotcloud/env/lib/python2.6/site-packages/pip-1.0.1-   

py2.6.egg:/ホーム/ dotcloud /現在:/home/dotcloud/env/lib/python2.6:/ dotcloud/envを/ libに/ python2 /ホーム/ home/dotcloud/env/lib/lib/python2.6/lib/python2.6/lib-dynload:/usr/lib/python2.6:/usr/lib64/python2.6:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib- tk:/usr/lib64/python2.6/lib-tk:/home/dotcloud/env/lib/python2.6/site-packages:/usr/local/lib/python2.6/dist-packages/virtualenv-1.6 .1-py2.6.egg:/usr/local/lib/python2.6/site-packages:/usr/local/lib/python2.6/dist-packages:/usr/lib/python2.6/dist-パッケージ:/usr/lib/pymodules/python2.6

エラーはまだ発生しています私は何が起こっているのか分かりません。どんなアドバイスも大歓迎です。

ありがとうございました。

+0

新しいエラーで質問を更新できますか?あなたはcrontabエントリーのために今持っているものを投稿できますか? –

答えて

7

あなたはそうです:cronジョブは "裸の"環境で実行されます。

代わりにこれを行うの

* * * * * /home/dotcloud/current/myapp/manage.py args... 

あなたはこれを行う必要があります。

* * * * * /home/dotcloud/env/bin/python /home/dotcloud/current/myapp/manage.py args... 

~/env/binを自動的にセットアップ正しい環境に含まれているpythonインタプリタを実行します。

+0

それは私にさらに一歩をもたらします。これを行うと、実行しようとしているカスタムコマンドが存在しないというエラーが表示されます。私がシェルから実行すると、完璧に動作します。私はあなたがmanage.pyディレクトリからコマンドを実行しなければならないことを読んだが、わからない。思考? – user523513

+0

@ user523513あなたがjpetazzoが言ったことをし、pythonとmanage.pyに完全修飾パスを使用すると、Django管理コマンドは正常に動作します。なぜなら、それがうまくいかない理由は、管理コマンドが何らかの理由でおそらく、現在のディレクトリを検索してファイルを削除するか、そのようなものです。これは良い習慣ではないので、ほとんどの管理コマンドはこれをしません。 –

+0

@ user523513とまったく同じ問題が発生しています。これは、現在の実行ディレクトリを使用しようとしている管理コマンドの場合ではありません。 Djangoが最初に管理コマンドを見つけられなかったのは問題です。私はすでにvirtualenvのPythonインタプリタを使用しています。私が得るのは "Unknown command"です。 – Kal