2016-09-05 10 views
0

Django-extension RunScriptを使用してDjangoシェルからスクリプトを実行しようとしています。私は前にこれを行っているし、それは私の新しいスクリプトを認識することを拒否:他のスクリプトを実行すると、正常に動作している間Djangoのrunscript:スクリプト 'filename'のモジュールがありません。

(env) [email protected] ~/GP/GP $ python manage.py runscript fill_in_random_variants 
No (valid) module for script 'fill_in_random_variants' found 
Try running with a higher verbosity level like: -v2 or -v3 

を:私は、二重に名前を変更するなど、ファイルが存在することを確認している

(env) [email protected] ~/GP/GP $ python manage.py runscript fill_in_variants 
Success! At least, there were no errors. 

他の何か。私も、存在しないスクリプト名でコマンドを実行しようとしました。

エラーは同じです。

RunScriptでファイルを見つけることができないのはなぜですか?

答えて

2

RunScriptに混乱しているエラーメッセージがあります。これは、スクリプトがまったく見つからない場合と、スクリプトにインポートエラーがある場合に同じエラーが発生します。

import nonexistrentpackage 

def run(): 
    print("Test") 

の例では、スクリプト、すなわちrun機能についてのみ述べた要件があります。

はここでエラーを生成するスクリプトの例です。

test_script.pyをスクリプトフォルダ(project root/your app/scripts/test_script.pyなど)に保存します。次に実行してみてください:

(env) [email protected] ~/GP/GP $ python manage.py runscript test_script 
No (valid) module for script 'test_script' found 
Try running with a higher verbosity level like: -v2 or -v3 

ファイルが見つからないのと同じエラーです。今インポート行をoutcommentして、再試行してください:

(env) [email protected] ~/GP/GP $ python manage.py runscript test_script 
Test 

私の知る限りでは、離れてエラーを伝えるための唯一の方法は、冗長を使用することです(-V2)コマンドラインオプションと、その後最初を見て(スクロールアップ)エラーが返されました:エラーの共通点があるためであると思わ

No module named 'nonexistrentpackage'. 

:我々は決定的なラインを見ることができます

(env) [email protected] ~/GP/GP $ python manage.py runscript test_script -v2 
Check for www.scripts.test_script 
Cannot import module 'www.scripts.test_script': No module named 'nonexistrentpackage'. 
Check for django.contrib.admin.scripts.test_script 
Cannot import module 'django.contrib.admin.scripts.test_script': No module named 'django.contrib.admin.scripts'. 
Check for django.contrib.auth.scripts.test_script 
Cannot import module 'django.contrib.auth.scripts.test_script': No module named 'django.contrib.auth.scripts'. 
Check for django.contrib.contenttypes.scripts.test_script 
Cannot import module 'django.contrib.contenttypes.scripts.test_script': No module named 'django.contrib.contenttypes.scripts'. 
Check for django.contrib.sessions.scripts.test_script 
Cannot import module 'django.contrib.sessions.scripts.test_script': No module named 'django.contrib.sessions.scripts'. 
Check for django.contrib.messages.scripts.test_script 
Cannot import module 'django.contrib.messages.scripts.test_script': No module named 'django.contrib.messages.scripts'. 
Check for django.contrib.staticfiles.scripts.test_script 
Cannot import module 'django.contrib.staticfiles.scripts.test_script': No module named 'django.contrib.staticfiles.scripts'. 
Check for django_extensions.scripts.test_script 
Cannot import module 'django_extensions.scripts.test_script': No module named 'django_extensions.scripts'. 
Check for scripts.test_script 
Cannot import module 'scripts.test_script': No module named 'scripts'. 
No (valid) module for script 'test_script' found 

を拡張機能はimportを使用してスクリプトを実行します。 os.path.isfileを使用してファイルの存在を最初にチェックした場合は、より賢明なエラーメッセージがスローされます。

0

私は同じ問題がありました。私は問題が何かを見つけるために1時間を費やします。しかし、このソリューションは非常に簡単です。私の場合は、スクリプトに以下のモジュールをインポートしました。

from openpyxl import Workbook 
from openpyxl.styles import Font 
from openpyxl.utils import get_column_letter 

私はvirtualenvのを使用していたと私はopenpyxlをインストールするのを忘れました。

私はpipを使用してopnepyxlをインストールしました。

pip install openpyxl

インポートされたモジュールがすべてインストールされていることを確認してください。

希望は役立ちます。

関連する問題