Python パッケージ (distutils、setuptools、pip など) についての説明はスキップします。単純な zip ファイルまたは tarball を使用する方がよいと思われるからです。あなたが言及した「問題点」を 1 つずつ説明します。
テンプレート ファイル: プロジェクトの TEMPLATE_LOADERS 設定に 'django.template.loaders.app_directories.load_template_source' が含まれている限り、これについて心配する必要はありません。各アプリには「templates/」サブディレクトリがあり、そこにあるテンプレートはプロジェクト全体のテンプレート ディレクトリにあるかのように読み込まれます。
メディア ファイル: アプリのメディアは面倒です。開発には、app_directories テンプレート ローダーと同様に動作するカスタム serve_media ビューを使用できます (各アプリでメディアを検索します)。本番環境では、ファイルをコピーするか、シンボリック リンクを使用するか、Web サーバー レベルのエイリアスを使用する必要があります。この問題を解決しようとするユーティリティ アプリがいくつかあります。私は今django-staticfilesを使用しています。
settings.py の編集: これを回避する簡単な方法はありません。モデル、テンプレート タグ、管理コマンドなどが機能するには、アプリが INSTALLED_APPS にリストされている必要があります。あなたができることは、特定のディレクトリの内容をリストし、そこにあるパッケージをINSTALLED_APPSに動的に追加するカスタムコードをsettings.pyに書くことです。少し危険です (あなたの王国への鍵を持っているので、誰がそのディレクトリにファイルを配置する権限を持っているかを慎重に考えてください)、そこにある新しいファイルはサーバーのリロード時にのみ検出されますが、動作するはずです.
これらの解決策を組み合わせれば、解凍してインストール、削除してアンインストールするという理想的な状況を実現できると思います。