LoginSignup
0
2
アプリケーション開発に注力するための工夫をシェアしよう! sponsored by Qmonus Value Stream
Qiita Engineer Festa20242024年7月17日まで開催中!

【Pyhon】venvを使って別のパソコンでも数年後でも動くスクリプトを作っておく

Last updated at Posted at 2024-06-20

venvを使っていないとき

俺:いろいろな事情でExcelファイルを読み込んでCSVにしてさらにExcelの形式にしてさらにCSVにするツールが必要になってしまった…。

俺:どうしてわざわざExcelファイルを経由するんだ…!? まあいっかー。

俺:Excelファイルを扱うとなると、Pandasがいいかなあ。pip installっと……。

通りすがりの先輩:Pythonを使うときは、venvを使うと便利だぞ!

俺:venv……?
venvを使うと、仮想環境を作ってそこで動かせるのかー。
いや、Excelファイルを読み込んでCSVにしてさらにExcelの形式にしてさらにCSVにするツールなんてもう二度と触る気はないし、別に使わなくてもいいか。

~数年後~

俺:まさかExcelファイルを読み込んでCSVにしてさらにExcelの形式にしてさらにCSVにする機会が再び来るとは……。
前作った便利ツールなかったっけ?
あっ、Pythonのバージョンが上がってるせいで動かせない。
このとき使ってたバージョンっていくつだっけ?
一瞬だけ動いてほしいだけなんだけどな……。

あのときvenvをやっておいたら……。

Pythonを使うときは、venvを使うと便利だぞ!

というわけで、ちゃんとvenvやrequirements.txtを使用して動く環境を作っておくと、便利です。
(使用しなくても開発はできますが、便利)。
個人的には、 「あとあとでも確実に動かせる環境が手に入る」 という便利さが、あとから効いてくる機会が多かったです。人に提供するときも便利です。

venvとは

venvは軽めの仮想環境を作るための仕組みです。
Python3.3から追加された機能です。

Pythonの最新版は今(2024/6/20)、3.12.4なので結構前です。

仮想環境を作る仕組みはほかにもありますが、標準の機能なのでお手軽で便利です。

使い方

  • Pythonの仮想環境を作成
    まず、プロジェクトのディレクトリを作成し、そのディレクトリに移動します。
    以下の例ではmy_projectという名前でフォルダを作っています。
mkdir my_project
cd my_project
python -m venv venv

フォルダをのぞいてみると、venv用にいろいろできています。

image.png

  • 仮想環境を有効化
    作成した仮想環境を有効化します。

Windowsの場合:

venv\Scripts\activate

macOS/Linuxの場合:

source venv/bin/activate

前の手順で作成されたScripts内のactivate.batを起動するのと同じです。

仮想環境が有効化されると、コマンドプロンプトが (venv) で始まるようになります。

image.png

タイポでmaiiiiiin.pyになっている気がするがまあいいや。

  • 必要なパッケージをインストール
    仮想環境が有効化された状態で、必要なパッケージをインストールします。
pip install パッケージ

と、ひとつひとつやってもいいのですが、
requirements.txtにパッケージを記述しておいて、一コマンドでインストールできるようにすると便利です。

pip install -r requirements.txt

あとはmain.pyなど適当なファイルを作って仮想環境内で実行していきます。

うれしい点

Pythonでは、なんかしようと思ったとき、だいたいやりたいことをやらせてくれるパッケージがあります。
(C#でもNugetで便利なものをインストールして使用する機会はありますが、Pythonではやりたいことすべてにあるので衝撃的でした。ライセンスには注意しましょう)。

例えばCSVやExcelを扱おうと思ったとき、画像を加工しようとしたとき、音声や動画ファイルを扱おうと思ったとき、「このパッケージを入れたら便利だなあ~」というのに出くわします。

pip install パッケージ名

で入れるかと思います。

このパッケージはかなり便利ですが、新しいPythonのバージョンには対応してなかったり、古い関数をやめたので新しい関数にしてほしいとか 、使っているといろいろなトラブルが襲い掛かってきます。

メインマシンでPythonのバージョンを下げたり、あえて古いバージョンのパッケージを入れたりしないとならなくなってくると本当に大変です。
あっちのスクリプトはバージョン下げないと動かないけどこっちは最新版が入ってるとか、管理しきれません。

仮想環境の中だったら気にせず使用することができるため便利。

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