【Python】django-admin が動かない!そんな時に見る場所はココ

【Python】django-admin が動かない!そんな時に見る場所はココ

【Python】django-admin が動かない!そんな時に見る場所はココ

Docker×Djangoで環境構築中【django-admin startproject プロジェクト名】を実行するけど「そんなコマンド知らね」とはねられました。
ちなみに、使ったイメージは『python:3.8-buster』このOSはDebianです。

そもそも [django-admin startproject プロジェクト名] ってなに?

このコマンドはDjangoプロジェクトを自動生成するコマンドです。
フレームワークに合致した形でいくつかのファイルを作成してくれます。
ちなみにアプリケーションを自動生成するコマンドは下記通り。

プロジェクトとアプリケーションの違いは親と子の関係です。
プロジェクトの中に複数のアプリケーションが入る構造で理解していればOK。
アプリケーションは1つ1つの動作を指します。

django-adminの場所は【django/bin】ディレクトリの中

django-adminのコマンドが無いと言われたので、どこにあるか探さないといけません。

NETで情報を漁ると「Debianの場合はdjango-admin.pyでコマンド叩かないとダメ」「コマンドが見つからない場合はdjango-adminへパスを通しましょう」などと出てくるのですが「そもそも場所が解らんの!」と格闘しました。

答えはタイトルの通り。djangoインストールフォルダのbinの中にあります。
Dockerで構築している場合はDockerfileでインストール先が書いてあるはず。
書いて無ければpythonをインストールした場所の【site-packages】ディレクトリの中にDjangoが入ってると思います。私の場合は以下の場所にありました。

/usr/local/lib/python3.8/site-packages/django/bin/django-admin.py

django-adminコマンドを有効にするにはbinフォルダにパスを通すこと

「Debianの場合はdjango-admin.pyでコマンド叩かないとダメ」
これはパスを通した後の事です。そもそもパスが通ってなければファイルの場所までのパスと一緒にコマンド渡さないといけません。
そんなのは面倒なので、サクッと行きましょう。

これでOKです。

まとめ

Docker使っている場合、上のコマンドたちはコンテナに入ってから実行しましょう。

Docker×PHP×Laravelはあっという間に構築できる程度に慣れてしまいましたが、初挑戦の Docker×Python×Django ちょっと手間取ってます。
こうやっていろんなことに挑戦してみると、今まで持っていた知識の足りてなかったところが解るのでいい勉強になります。