見出し画像

VisualStudioCodeで、Python仮想環境を使えるようにするまでのメモ。

VSCodeでPython仮想環境を設定する

プロジェクト固有の依存関係を効率的に管理するために、VSCodeで仮想環境を設定することは重要です。このプロセスには以下のステップが含まれます:

  1. Pythonのインストール: Pythonがシステムにインストールされていることを確認します。インストールされていない場合は、公式Pythonウェブサイトからダウンロードしてインストールします。

  2. VSCodeとPython拡張機能のインストール: VSCodeをダウンロードしてインストールし、次にVSCodeの拡張機能ビューからMicrosoftが提供するPython拡張機能を追加します。

仮想環境の作成: プロジェクトディレクトリで、```python -m venv .venv``` を実行して新しい仮想環境を作成します。名前`.venv` は慣例ですが、カスタマイズすることもできます。

python -m venv .venv
  1. 仮想環境のアクティベーション: お使いのオペレーティングシステムに応じて、Windowsでは `..venv\Scripts\activate`、macOS/Linuxでは `source .venv/bin/activate` を使用して環境をアクティベートします。

  2. VSCodeで環境の選択: 左下隅のPythonインタープリタをクリックし、リストから新しく作成した仮想環境を選択します。

Path\to\venv\Scripts\activate

初めてやるときは、エラーで、スクリプトを使えません的なことを言われると思う。そしたら、VScodeの設定ファイルをいじる。
設定>右上のJson>以下のコードを追加 (既にあるコードの行の最後にコンマをつけるのを忘れずに。)

"terminal.integrated.env.windows": {
        "PSExecutionPolicyPreference": "RemoteSigned"
    }

プロジェクトの構造とファイル配置

効果的な管理と明確さのために、適切なプロジェクト構造が重要です:
例えばこんなかんじ
 MyProject/ のように / がついているのが、フォルダ。

MyProject/            # プロジェクトのルートディレクトリ
│
├── docs/             # ドキュメント用のサブディレクトリ
├── src/              # ソースコード用のサブディレクトリ ここに.pyとかのファイルが入る 
├── tests/            # テストコード用のサブディレクトリ
├── venv/             # 仮想環境用のディレクトリ ここにnumpyとかを入れておく
├── README.md         # プロジェクトの説明ファイル
└── .gitignore        # Gitの無視リストファイル

もう一つ例。全体ではこんなかんじ。

C:\
│
└── Users\
    └── [YourUserName]\
        └── Projects\
            └── MyProject\          # プロジェクトのルートフォルダ
                ├── .vscode\        # VSCode の設定ファイル
                ├── venv\           # 仮想環境のフォルダ
                ├── src\            # ソースコードのフォルダ
                │   ├── main.py
                │   └── ...
                ├── .gitignore      # Git の無視ファイル
                └── README.md       # プロジェクトの説明ファイル
  • 仮想環境の場所: 一般的な慣例は、venvフォルダをプロジェクトのルートに配置することです。これにより、環境がプロジェクトと一致し、他のプロジェクトからの分離が確保されます。

  • コードの組織: Pythonコードファイル(.py)はvenvフォルダの外に保存し、通常、プロジェクトのルートにあるソース(src)フォルダに保存します。この分離は明確さとバージョン管理に役立ちます。

作られたファイルが、こんな感じになってるか確認しておこう。

依存関係の理解と管理

依存関係は、プロジェクトが必要とする外部ライブラリやモジュールです:

  • 依存関係の管理: 必要なすべてのパッケージとそのバージョンをリストアップする`requirements.txt`ファイルを使用します。このファイルは同じ環境を別の場所で再現するために重要です。

  • `requirements.txt`の作成方法: 手動で作成するか、

pip freeze > requirements.txt

を使用してアクティブな仮想環境にインストールされたすべてのパッケージをリストアップします。

バージョン管理と.gitignoreの使用

Pythonプロジェクトで.gitignoreを効果的に使用することで、不要なファイルをバージョン管理から除外できます。例えばこんなかんじ。ファイル名が「.gitignore」となる。テキストエディタとかで作る。

# 仮想環境のフォルダ
venv/

# VSCode の設定
.vscode/

# その他の一時ファイルやログファイル
*.log
*.tmp
  • Pythonの典型的な.gitignoreエントリ: venvフォルダ、.vscode設定、ログファイルや一時ファイルなどの他の一時ファイル(.log、.tmp)を含めます。

Pythonでのモジュールのインポートについて補足

Pythonでのモジュールのインポートはファイルの場所に依存します:ファイル構造の例と一緒に説明。

モジュールは、別のPythonファイルの関数を使うイメージ。numpyとかは、ライブラリ。こっちは仮想環境をアクティブ化してimportしたら使える。

my_project/
│
├── main.py
├── helper.py
│
├── package1/
│   ├── __init__.py
│   ├── module1.py
│   └── subpackage1/
│       ├── __init__.py
│       └── submodule1.py
│
└── package2/
    ├── __init__.py
    └── module2.py
  1. 同じディレクトリ:

    • main.py から helper.py をインポートする場合: import helper

    • module1.py から package1 内の subpackage1/submodule1.py をインポートする場合: from subpackage1 import submodule1

  2. サブディレクトリ:

    • main.py から package1/module1.py をインポートする場合: from package1 import module1

    • module2.py から package1/subpackage1/submodule1.py をインポートする場合: from package1.subpackage1 import submodule1

  3. 親ディレクトリやその他のディレクトリ(通常は推奨されない):

    • subpackage1/submodule1.py から main.py をインポートする場合: 通常はできません。sys.path を操作するか、相対インポートを使う必要があります。

  4. 標準ライブラリやサードパーティのライブラリ:

    • どのファイルからでも、例えば import osimport requestsrequests はサードパーティのライブラリ)をインポートできます。

Pythonプロジェクトのベストプラクティス

クリーンで効率的なワークフローを維持するために:

  • 独立した環境: 異なるプロジェクト用に別々の仮想環境を作成することを優先し、依存関係の競合を避けます。

  • 共通のセットアップの再利用可能なスクリプト: 効率性のために共通のセットアップタスクをスクリプト化することを検討します。

  • バージョン管理: プロジェクトの現在の状態を反映するために、定期的に.gitignoreとrequirements.txtを更新します。例えば、ライブラリを更新したときとかです。


この記事が気に入ったらサポートをしてみませんか?