2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

python仮想環境構築をバッチファイル化(自動化)

Last updated at Posted at 2024-06-06

環境構築のバッチファイル化

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

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

ルートフォルダ名python_django_helloと仮想環境名envは任意のものにしてください。

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

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

外部ライブラリを使うと思うので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

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

pandasを使う場合の例

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をカスタマイズすることで解決できるらしいですが、ここれは触れません。

まとめ

参考になれば幸いです。

2
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?