2016-10-30 5 views
1

djangoで使用するためのパッケージを作成しました。その主な機能は管理コマンドからアクセスできます。しかし、管理コマンドをアクセス可能にするために、djangoはのINSTALLED_APPSにappとしてリストされているパッケージを主張しているようです。Djangoはアプリケーションとしてインストールすることなく管理コマンドを追加します

このアプリケーションは、統合テストを実行中にビルドプロセスの一部として使用されます。開発環境のマシンにインストールする必要はありません。しかし、settings.pyのインストールされているアプリにある必要があるため、インストールされていない場所では、突然ビルドが破損するため、requirements.txtにも広がります。

パッケージが本格的なアプリとしてインストールされていない状態で管理コマンドを挿入する方法はありますか?

また、toxのコマンドを管理コマンドとは異なる方法で使用できるようにする標準的な/推奨の方法はありますか?

+0

:https://github.com/django/django/blob/master/django/core/management/__init__.py

設定ファイル自体は、のような単純なことができ管理コマンドは非常に制限されています。つまり、INSTALLED_APPSで定義された組み込みの機能やアプリケーションのみを許可しています。 – karthikr

+0

そうですね、私は恐れていました(私の最初の試みであったはずです)。管理コマンドの他に、 'tox'コマンドを利用できるようにする異なる標準的なアプローチがありますか? – Joost

+0

私は過去に取り上げたアプローチの1つです。非常にエレガントではないものの、 'scripts /'ディレクトリを持ち、django.setup()を呼び出してdjangoスクリプトとして登録しています。 – karthikr

答えて

0

解決策の1つは、INSTALLED_APPSにこのコマンドを含むアプリケーションを追加するビルドプロセス用の個別のsettings.pyを用意することです。その後、manage.py mycommand --settings=build_settingsなどを実行することができます。ソースコードを見てみると

from main_settings import * 
INSTALLED_APPS += ['myapp'] 
関連する問題