saijaku_plus
@saijaku_plus

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【Python】本番環境で仮想環境を作る意味はありますか?

Pythonにおいて本番環境で扱うプロジェクトが1つで、もしくは、今後も永続的に扱うプロジェクトが1つの場合仮想環境を構築するメリットはどのようなことが考えられますか?

当方まだ学生であり、実務経験が0なので、ふと本番環境の時どのように仮想環境が使われているのか感覚がわからず、本番環境でも仮想環境をvenvで作成したりするのか気になった次第です。

本番環境に仮想環境をvenvで作成するべきなのかどうか。気になったので質問してみました。
ご教授いただけるとありがたいです。
よろしくお願いします。

1

一言で言えば「コスト」に尽きると思います。

Python における virtualenv を使う利点は、プロジェクトに必要なモジュールが、他のプロジェクトに影響を与えない点です。

そのため、該当サーバーで他のプロジェクトを将来的にも走らせることがないのであれば、本番環境をそのままブチ込んで良いと思います。プロジェクトの専用サーバーだし、メンテナンスも数ステップ少ないぶん楽です。

問題は、そのプロジェクトが採算に合わない場合です。

「他のプロジェクトも入れないとサーバーのコストがもったいない」といった事態が発生し、仮想環境を導入しないといけなくなります。

「他のプロジェクトを入れないって言ったじゃないか」とは言えないので、泣く泣く仮想環境を作り、引越しをして、リバースプロクシを入れ ... といったハメになります。

その手間を考えると、最初から仮想環境で構築しておいた方がいいケースもあります。つまり「可能性があるなら、後輩や後任のために導入しておく」という役目でしかないと思います。個人の場合は「未来の自分のために導入しておく」という感じでしょうか。

逆に、他のプロジェクトがない間は手間というコストが増えることになります。もし「本当にプロジェクトが増えなかった」場合には疲れだけが残ることになります。

そのため、確信が持てない or 可能性が限りなく低い場合は「プロジェクトが増えた時に考える」という考え方も現実的だと思います。

そう言う意味で、本番環境に仮想環境を使うのは「コストとのバランス」だと思います。

1Like

Your answer might help someone💌