作成したプロジェクトでヘルプオプションを変更したいと思います。 私はこのDjango - argparseコマンドを-hオプションに変更するには?
parser = argparse.ArgumentParser(
description="Some desc",
formatter_class=argparse.RawTextHelpFormatter
)
args = parser.parse_args()
print(args)
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Reporter.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
のように、manage.pyファイルにargparse置くが、それは正しく動作-h私が(ヘルプ番組)のpython manage.pyを実行しますが、私はpython manage.py runserver
を実行したときに、私が得たとき:manage.py: error: unrecognized arguments: runserver
どのようにしこの問題を解決します?私は本当に-hオプションを変更する方法を知らない。
このdjangoプロジェクトの助けを借りるには、どこにargparseコードを入れますか?おそらく
#!/usr/bin/env python
def help_parser():
import argparse
parser = argparse.ArgumentParser("Some desc",
formatter_class=argparse.RawTextHelpFormatter
)
args = parser.parse_args()
print(args[0])
def main():
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Reporter.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
if __name__ == "__main__":
import sys
if sys.argv[1] == '-h':
help_parser()
else:
main()
わかりました。しかし、誰かが自分のアプリに追加するモジュールをインストールしていない場合はどうでしょうか?次に、manage.py custom -hにヘルプは表示されず、エラーの一覧が表示されます。エラーが表示されても、どのようにヘルプを表示できますか? – allocer
あなたが実際に作成しようとしていることは、ジャンゴのWebアプリケーションではなく、Django CLIアプリケーションだと思っています。 – e4c5
私はrequirements.txtを持っていることを知っています。このアプリの話はもっと複雑です。これは私の研究アプリであり、教師は、エラーのリストが表示されても助けを求めるべきだと言った。私はそれが愚かだと知っていますが、私はそれが不可能であることを確実にしたいです。さて、最善の方法は、最初にすべてのモジュールを要件からインストールして、カスタムヘルプコマンドを呼び出すことです。 – allocer