LoginSignup
0
1

pythonの仮想環境構築をバッチファイル化してみる

Last updated at Posted at 2024-06-06

バッチファイル化でプロンプト操作を不要にしよう

Pythonの仮想環境はvenvを使うことで作成できます。
コマンドプロンプトから実行できる=バッチファイルにまとめることができる
なので、djangoなど環境構築までの手数が多い作業はバッチファイルにまとめておくといいかもしれません。

プログラミング教室などで、環境構築は生徒さんに手早くやらせてコーディングからスタートしたいときなどにバッチファイルを配って、デスクトップ上で起動させるなどの使い方ができるかもしれません。

単純にスクラップ&ビルドが一瞬でできることで、その先の学習を進めやすくなるという利点もあると思います。

最終的には何をやっているのかを理解する必要が出てくるとは思いますが。

python自体のコマンドを使って仮想環境を作成するので、予めpython自体はインストールされている必要があります。

pythonの環境のみをインストールする例

sample01.bat
mkdir python_django_hello
cd python_django_hello
python -m venv env

さらにpipのインストール&アップグレードする例

sample02.bat
mkdir python_django_hello
cd python_django_hello
python -m venv env

cd env
Scripts\python.exe -m pip install --upgrade pip

外部ライブラリをインストールする例

sample03.bat
mkdir python_django_hello
cd python_django_hello
python -m venv env

cd env
Scripts\python.exe -m pip install --upgrade pip

rem 外部ライブラリpandasインストール
Scripts\pip install pandas

Djangoのインストールに加え、一連の処理をまとめたパターン

スーパーユーザーの作成のところでは、ユーザー名・パスワードを入力する必要があります。

sample04.bat
mkdir python_django_hello
cd python_django_hello
python -m venv env

cd env
Scripts\python.exe -m pip install --upgrade pip

rem 外部ライブラリdjangoインストール
Scripts\pip install django

rem プロジェクトの作成
mkdir project
cd project
django-admin startproject config .

rem アプリの作成
python manage.py startapp app

rem データベースの作成・初期化・スーパーユーザの作成
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

pause

スーパユーザー作成の部分について

スーパユーザー作成の部分はインタラクティブ(対話的)になるので、一括で作成できません。

そこで、createsuperuserに引数を与えて、対話的な部分も自動的に処理したいところですが、パスワードの部分は対話的にしか作成できず。この方法ではコマンドラインからの一括作成ができません。createsuperuser.pyをカスタマイすることで解決できるのですが、バッチ処理だけでやるには複雑なため、諦めます。
やってる方はいるので検索すると出てくると思います。

まとめ

mkdir,config,appなどはお好きな文字列に置き換えて、それぞれディレクトリ・プロジェクト名・アプリ名としてください。

書き方が冗長なところもあると思いますが、何をやっているのかわかりやすくするためなのでご容赦ください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1