Python 作業環境構築＜Win / macOS 統合版＞

本記事は、データ分析・調査設計・集計処理を担当している筆者が、Python・VSCode・Git・SSH 環境をゼロから再構築する際の手順を整理した備忘録です。

VSCode で Python コードを書き、書いたコードはプロジェクトごとに GitHub で管理しています。マシンの交換やOSの初期化があっても最小限の手順でこの作業環境を復旧できるよう、構成と運用方法を見直しました。

筆者の業務内容については、B節のパッケージリストをご覧いただくとおおよその想像がつくと思いますが、主には以下のような比重です：

- データ処理・可視化・分析（約7割）：Pandas を中心に、Jupyter / Tableau 等も併用
- レポート執筆・解説・技術支援（約3割）：報告書・調査設計補助・クライアント説明用資料の作成
- 長年 Excel を使っていましたが、扱うデータの行数が増加したこともあり、できるところから Python（特に Pandas）を併用し、現在は Python を主軸に据えた作業に移行しています。
 
このような立場の人間が構築した、実務的・再現性重視の環境構成例としてご参照いただければ幸いです。



## A. Pythonの導入

### Windows 11

1. [python.org](http://python.org) から最新安定板をダウンロードして実行
2. インストール時にカスタム選択、「すべてのユーザーに導入」チェックで Program Files 以下に導入される。（チェックを入れなければ ~/appdata/ 以下にインストールされる）
3. 「Add Python to PATH」にチェック
4. インストール完了したら、PowerShell で開発環境に移動
5. venv で仮想環境 myenv を作成
6. myenv\Scripts\activate で仮想環境をアクティベート
7. コマンドプロンプトの左側に `(myenv)` と表示される、この状況で pip install
    
    ```powershell
    cd path\to\your\project
    python -m venv myenv
    myenv\Scripts\activate
    ```
    

PowerShell で「このシステムではスクリプトの実行が無効になっている」と言われたら、以下の手順でスクリプトの実行ポリシーを変更する。

1. **PowerShellを管理者権限で実行する**:
- スタートメニューからPowerShellを右クリックし「管理者として実行」を選択します。
2. **実行ポリシーを変更する**:
- 管理者権限でPowerShellが開いたら、以下のコマンドを実行して実行ポリシーを変更します。
        
    ```powershell
    Set-ExecutionPolicy RemoteSigned
    ```
        

### macOS Sequoia

1. Homebrew 公式から例のコマンドをコピーして導入。途中 Xcode が導入される。完了直後に確認すると次の状態。

    ```powershell
    iwskd@m4 homebrew % python3 --version
    Python 3.9.6
    iwskd@m4 homebrew % where python3
    /usr/bin/python3
    ```

1. brew にパスを通す
    ```powershell
    iwskd@m4 ~ % echo $SHELL
    /bin/zsh
    iwskd@m4 ~ % echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
    
    iwskd@m4 ~ % source ~/.zprofile
    iwskd@m4 ~ % brew --version
    Homebrew 4.5.7
    ```
    
1. brew install python する。直後のバージョン関係は下記の通り。再起動するとシステム標準が 3.13 になる。Apple が SIP（System Integrity Protection）で、`/usr/bin/python3` を保護しているため、後追い Python は先行 Python を上書きできないが、path の切り方で優先順位が逆転(brew install した後の Python が前に出る)する点に留意。
    
    ```powershell
    iwskd@m4 homebrew % python3 --version
    Python 3.9.6
    iwskd@m4 homebrew % /opt/homebrew/bin/python3 --version
    Python 3.13.1
    ```
    
1. 後発 Python で仮想環境をつくってから、後発 Python を unlink する。Homebrew 本体が XCode とともに導入した 3.9.6 をシステム標準の地位に戻す。後発 3.13 はそのまま残る。
    
    ```powershell
    iwskd@m4 projects % python3 -m venv myenv
    iwskd@m4 projects % source myenv/bin/activate
    (myenv) iwskd@m4 projects % python --version
    Python 3.13.1
    iwskd@m4 ~ % brew unlink python
    Unlinking /opt/homebrew/Cellar/python@3.13/3.13.1... 23 symlinks removed.
    iwskd@m4 ~ % echo $PATH        
    （中略）
    iwskd@m4 ~ % python3 --version
    Python 3.9.6
    iwskd@m4 ~ % which python3
    /usr/bin/python3
    
    ```
    

## B. 必要なパッケージをインストールする

仮想環境内で必要なPythonパッケージをインストールする

```powershell
# 自分で明示的に pip install したパッケージ（だけ）のリストは次のコマンドで得られる。既存最新環境の状況把握に使う
pip list --not-required
```

```powershell
# データ系
pip install pandas numpy matplotlib seaborn openpyxl tabulate

# ウェブ・スクレイピング
pip install beautifulsoup4 selenium chromedriver-autoinstaller webdriver-manager

# デバイス・ノートブック関連
pip install ipykernel PyMuPDF networkx

# LLM／AI系
pip install openai google-generativeai sentence-transformers grpcio-status

# その他
pip install ace_tools PySocks PyMySQL opencv-python
```
なにかとつまづく pygraphviz は、導入トラブルを乗り越えてまで使いたい事情があるわけではないので、導入を見送る（2025/06の更新時決定）


## C. VSCode を導入する

1. win / Mac ともに公式からダウンロードしてインストール
    - Mac は実行ファイルそのものが download フォルダに降りてくるので注意
2. sync on（GitHub）
3. 設定の確認、ctrl(command) + shift + p で、user setting json を開く
    
    ```json
    2025/06/22 仕様
    
    {
      // エディタの基本設定
      "editor.fontSize": 16,
      "editor.insertSpaces": false, // デフォルトと異なる、好みの反映
      "editor.copyWithSyntaxHighlighting": false,
      "editor.unicodeHighlight.includeComments": false,
      "editor.unicodeHighlight.nonBasicASCII": false,
      "editor.minimap.enabled": false,
      "editor.wordWrap": "on",
    
      // diff とエディタ挙動
      "diffEditor.maxComputationTime": 0,
      "workbench.editor.languageDetection": false,
      "workbench.editor.enablePreview": false,
    
      // Git 関連
      "git.enableSmartCommit": true,
      "git.confirmSync": false,
      "git.autofetch": true,
    
      // SCM 表示設定
      "scm.alwaysShowRepositories": true,
      "scm.defaultViewMode": "tree"
    
      // Copilot 完全無効化（必要最低限＋将来の拡張もブロック）
      "github.copilot.enable": {
        "*": false,
        "plaintext": false,
        "markdown": false,
        "scminput": false
      },
      "github.copilot.inlineSuggest.enable": false,
      "github.copilot.chat.enable": false,
      "github.copilot.editor.enableAutoCompletions": false,
    
      // Markdown PDF 拡張設定
      "markdown-pdf.displayHeaderFooter": false,
      "markdown-pdf.emoji": false,
      "markdown-pdf.styles": [
        "path/to/markdown-pdf.css"
      ],
    
      // rainbow-csv 拡張設定
      "rainbow_csv.highlight_rows": true,
      "rainbow_csv.enable_tooltip_column_names": false,
      "rainbow_csv.enable_tooltip": false,
      "rainbow_csv.enable_cursor_position_info": false,
      "rainbow_csv.double_width_alignment": false,
    
    }
    
    ```
    

## D. SSH の確認

### Windows 11

1. **SSH鍵の再生成と設定（ or バックアップの復元）**
    
    ```powershell
    ssh-keygen -t ed25519 -C "your_email@example.com"
    ```
    
    - `~/.ssh/config` も再構成が必要（ホスト設定する場合）
2. **GitHubと公開鍵の再連携**
    - GitHub の「SSH and GPG keys」画面から新しい公開鍵（`~/.ssh/id_ed25519.pub`）を登録。
    - バックアップしておけばこのプロセスは省略できる

### macOS Sequoia

1. **SSH鍵の再生成と設定（ or バックアップの復元）**
    
    ```bash
    ssh-keygen -t ed25519 -C "your_email@example.com"
    eval "$(ssh-agent -s)"
    
    # ssh-agent は、プロセス
    
    # ssh-agent -s そのものは、環境変数（SSH_AUTH_SOCK）の出力コマンド。ssh_auth_sock にはその瞬間に SSH コマンドが頼るべき ssh-agent の所在が記載されている
    
    # eval(ssh-agent -s) とは、ssh-agent （SSH認証エージェント）を起動し、そのプロセス情報を現在のシェルに読み込むためのコマンド。もしこれを行わずに次の ssh-add を行えば、ssh-agent が起動しておらず、ssh-add が「どこに鍵を登録すればいいのか分からない」状態になり、結果として、ssh-add は空振りします（エラーになるか、無視される）。
    
    # ssh-agent に秘密鍵を「登録」する
    ssh-add ~/.ssh/id_ed25519
    
    ```
    
2. macOS で「鍵の記憶」を持続させる正解パターン（2024年時点）
    - macOS の親切機能により下記を徹底しなくてもそれっぽく動くが、ちゃんとやるとこうなる。
    1. `.ssh/config`
        
        ```bash
        Host *
          AddKeysToAgent yes
          UseKeychain yes
          IdentityFile ~/.ssh/id_ed25519
        	
        ```
        
    2. `ssh-add`（一度だけ手動でやる）
        
        ```bash
        ssh-add --apple-use-keychain ~/.ssh/id_ed25519
        ```
        
    3. `.zshrc`（念のため再起動時に環境変数だけでも整える）
        
        ```bash
        # SSH agent 起動（環境変数が必要なとき用）
        eval "$(ssh-agent -s)"
        ```
        
3. **GitHubと公開鍵の再連携**
    - GitHub の「SSH and GPG keys」画面から新しい公開鍵（`~/.ssh/id_ed25519.pub`）を登録。

## E. Git を導入する

### Windows 11

1. **Gitのインストール**
    - https://git-scm.com/ から最新版をダウンロードしてインストール。

### macOS Sequoia

1. **Apple 標準 Git 導入済み。バージョンを確認する。**
    - macOS の git バージョンが Apple 提供のもの（`Apple Git-154`）である。基本的な機能には問題ないので、このまま利用する。
    
    ```bash
    git version 2.39.5 (Apple Git-154)
    ```
    

### win / mac 共通

1. ターミナルで以下を実行し、グローバルなGit設定を確認：
    
    ```bash
    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    ```
    
2. git 設定と確認（例）
    
    ```bash
    iwskd@m4 ~ % git config --global user.name "my_name"
    iwskd@m4 ~ % git config --global user.email "my_email"
    iwskd@m4 ~ % cat ~/.gitconfig                                 
    [user]
    	name = my_name
    	email = my_email
    iwskd@m4 ~ % git config --list --show-origin                  
    file:/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig   credential.helper=osxkeychain
    file:/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig   init.defaultbranch=main
    file:/Users/takuya/.gitconfig   user.name=my_name
    file:/Users/takuya/.gitconfig   user.email=my_email
    ```
    
3. **VSCode 上で Git を有効にする条件**
    - VSCode が Git を認識しているか：
        
        `Ctrl + Shift + P → Git: Show Git Output` で確認可能
        
4. **VSCode でSSH経由の Git 操作を有効にする**
    - 拡張機能「Remote - SSH」が入っていれば、リモートの `.git` リポジトリ操作も可能。