pythonの環境構築が苦手すぎる。

python, python3, pip, pip3, pipx, venv, conda...

基礎を理解してないからなのはわかっているんですが、どういう状態でpythonがインストールされているのかわからなくなる。

パッケージ管理ソフトをてきとーに入れているとどのpythonのパスが通っているのかわからない。

じゃあdockerで毎回新しくpython環境つくれば、他のpython環境に影響されない純粋なpipとpythonコマンドが使えるんじゃないかと思った。


compose.yamlファイルを作る

services:
app:
image: python:3-slim
working_dir: /app
ports:
- 8000:8000
command: ["sh", "-c", "tail -f /dev/null"]
volumes:
- ./:/app

pythonの軽量版のイメージを使う

appディレクトリにcdせずに済む

djangoやるかもしれないから8000を繋いでおく

コンテナはプロセスが実行されていないと終了するため、ログを取るコマンドを実行させておく。

composeファイルのあるディレクトリとコンテナ内のappディレクトリを繋いでおく。


pythonを実行する

そのディレクトリで

docker compose up -d

でコンテナを作る。

docker exec -it コンテナ名 sh

でコンテナの中に入る。

あとはcompose.yamlファイルが有るディレクトリにpyファイル作ってコードを書く、

コンテナ内で実行するだけ。


出るときはexit



これでpython環境をなんにも考えずに作れるから便利だなと思っていたら、よく考えたらdockerはCUI用だからTkinterとかGUIアプリ作ろうと思ったらだめなのか。

djangoとかサーバー系を動かすのにしか向かないのか。

今のところpythonでGUIアプリを作る予定はないけれど、作りたい場合は結局自分のmacのpythonの環境を整理しないと・・・