<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>開発環境Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/category/python/development-environment/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Sun, 08 Mar 2026 03:21:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>開発環境Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python】uvとは？pipとの違いと基本的な使い方を解説</title>
		<link>https://tech.nkhn37.net/python-uv-guide/</link>
					<comments>https://tech.nkhn37.net/python-uv-guide/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 20:00:00 +0000</pubDate>
				<category><![CDATA[uv]]></category>
		<category><![CDATA[pip]]></category>
		<category><![CDATA[pyproject.toml]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[パッケージ管理]]></category>
		<category><![CDATA[仮想環境]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=13981</guid>

					<description><![CDATA[Python で近年注目されている uv というパッケージおよびプロジェクト管理ツールについて解説します。 uv の概要 uv とは？ uv は、Python 用の高速なパッケージおよびプロジェクト管理ツールです。 従来 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Python で近年注目されている <span class="jinr-d--text-color d--marker1 d--bold">uv</span> というパッケージおよびプロジェクト管理ツールについて解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">uv の概要</h2>



<h3 class="wp-block-heading jinr-heading d--bold">uv とは？</h3>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">uv</span> は、Python 用の高速なパッケージおよびプロジェクト管理ツールです。</p>



<p class="wp-block-paragraph">従来の Python 環境の構築では、pip、venv など複数のツールを組み合わせて使用することが一般的でした。uv は、これらの機能を統合して、パッケージ管理、仮想環境管理、依存性管理などを 1 つのツールで扱えるようにしたものであり、pip の代替として非常に注目されているツールです。</p>



<p class="wp-block-paragraph">また、uv は、プログラミング言語の Rust で実装されていることも特徴です。Rust の高速な処理能力を活かすことで、依存関係の解決やパッケージインストールを効率的に行うことができます。</p>



<p class="wp-block-paragraph">この記事では、<span class="jinr-d--text-color d--marker1 d--bold">uv のインストール方法や使い方、pip との違いなど</span>について紹介していきます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">pip との比較</h3>



<h4 class="wp-block-heading jinr-heading d--bold">主な違い</h4>



<p class="wp-block-paragraph">pip は、Python の標準パッケージインストーラであり、PyPI (Python Package Index) からパッケージをインストールするためのツールです。一方、uv は、パッケージ管理だけでなく、仮想環境管理や依存関係の <code>lock</code> 管理なども統合して提供します。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>pip</th><th>uv</th></tr></thead><tbody><tr><td>パッケージ管理</td><td>〇</td><td>〇</td></tr><tr><td>仮想環境作成</td><td>×（venv などの別ツール）</td><td>〇（内蔵）</td></tr><tr><td><code>lock</code> ファイル</td><td>×（標準でなし）</td><td>〇（標準搭載）</td></tr><tr><td>実装言語</td><td>Python</td><td>Rust</td></tr></tbody></table></figure>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox5 ">
			<i class="jif jin-ifont-v2speaker" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph"><strong>【<code>lock</code> ファイルに関する補足】</strong></p>



<p class="wp-block-paragraph">pip 自体には、<code>lock</code> ファイルの仕組みは標準では提供されていません。再現性を確保するためには「<code>pip freeze</code>」などを利用して <code>requirements.txt</code> を生成することが一般的です。</p>



<p class="wp-block-paragraph">一方 uv では、<code>lock</code> ファイル（<code>uv.lock</code>）が標準機能として提供されており、依存関係固定と再現性確保が容易になっています。</p>
</div>
		</div></section>



<h4 class="wp-block-heading jinr-heading d--bold">速度の違い</h4>



<p class="wp-block-paragraph">uv は、Rust で開発されており、並列ダウンロードや効率的な I/O 処理により非常に高速に処理ができます。以下は、uv の公式サイトで紹介されている指標です。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="686" height="306" src="https://tech.nkhn37.net/wp-content/uploads/2026/02/image-1.png" alt="uv 公式サイト 速度比較" class="wp-image-13987" style="aspect-ratio:2.2419122192458274;width:503px;height:auto" srcset="https://tech.nkhn37.net/wp-content/uploads/2026/02/image-1.png 686w, https://tech.nkhn37.net/wp-content/uploads/2026/02/image-1-300x134.png 300w" sizes="(max-width: 686px) 100vw, 686px" /><figcaption class="wp-element-caption"><a href="https://docs.astral.sh/uv/" target="_blank" rel="noreferrer noopener">uv 公式サイト</a> より引用<br>（記事執筆時点のため記載は変更されている可能性があります）</figcaption></figure>
</div>


<p class="wp-block-paragraph">このベンチマークでは、Python の非同期ライブラリ Trio の依存パッケージをインストールする際の速度が比較されています。Trio は、<code>async</code> / <code>await</code> を利用した非同期処理を扱う Python ライブラリで、このライブラリの依存関係をインストールする処理を各ツールで比較しています。</p>



<p class="wp-block-paragraph">また、この測定は、warm cache (依存関係が既にキャッシュされている状態) で行われています。結果を見ると、poetry や pdm などの他ツールに比べて uv は非常に高速に処理できることが分かります。</p>



<h2 class="wp-block-heading jinr-heading d--bold">uv のインストール方法</h2>



<h3 class="wp-block-heading jinr-heading d--bold">uv のインストール方法</h3>



<p class="wp-block-paragraph">uv のインストール方法を紹介します。手順は、公式の<a href="https://docs.astral.sh/uv/getting-started/installation/" target="_blank" rel="noreferrer noopener">こちら</a>を参照しています。</p>



<h4 class="wp-block-heading jinr-heading d--bold">Windows でのインストール</h4>



<p class="wp-block-paragraph">Windows では、PowerShell を利用して以下のコマンドを実行します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"</pre>



<p class="wp-block-paragraph">実際のインストールは「<code>"irm https://astral.sh/uv/install.ps1 | iex"</code>」の部分で実行されています。<code>irm</code> は、指定URLからデータを取得する PowerShell のコマンドで、インストールスクリプトをダウンロードし、<code>iex</code> に渡して実行しています。</p>



<p class="wp-block-paragraph">「<code>powershell -ExecutionPolicy ByPass</code>」は、この起動した PowerShell プロセスだけ実行ポリシーを無視してスクリプトを実行するための指定です。</p>



<p class="wp-block-paragraph">インストールが完了すると「<code>uv.exe</code>」などの実行ファイルがインストールされます。<code>PATH</code> も自動的に設定されるため、PowerShell を再起動すると <code>uv</code> コマンドが使用できるようになります。</p>



<h4 class="wp-block-heading jinr-heading d--bold">Linux/ macOS</h4>



<p class="wp-block-paragraph">Linux や macOS では、以下のコマンドを実行します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">curl -LsSf https://astral.sh/uv/install.sh | sh</pre>



<h2 class="wp-block-heading jinr-heading d--bold">uv によるプロジェクトの作成と管理</h2>



<h3 class="wp-block-heading jinr-heading d--bold">uv によるプロジェクトの作成</h3>



<p class="wp-block-paragraph">uv では、「<span class="jinr-d--text-color d--marker1 d--bold"><code>uv init</code></span>」コマンドを使用して新しいプロジェクトを作成できます。以下は、<code>my-project</code> というプロジェクトを作成する例です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">uv init my-project</pre>



<p class="wp-block-paragraph">このコマンドを実行すると、<code>my-project</code> というフォルダに以下のようなファイルが自動で生成されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">my-project
├ .gitignore
├ .python-version
├ main.py
├ pyproject.toml
└ README.md</pre>



<p class="wp-block-paragraph">簡単に各ファイルの説明をしておきます。</p>



<h4 class="wp-block-heading jinr-heading d--bold"><code>pyproject.toml</code></h4>



<p class="wp-block-paragraph">Python プロジェクトの設定ファイルです。プロジェクト情報を管理するために使用され、近年の Python プロジェクトでは、<code>pyproject.toml</code> が標準的な設定ファイルとして利用されています。</p>



<h4 class="wp-block-heading jinr-heading d--bold"><code>main.py</code></h4>



<p class="wp-block-paragraph">エントリーポイントとして利用できるサンプルの Python ファイルです。</p>



<h4 class="wp-block-heading jinr-heading d--bold"><code>README.md</code></h4>



<p class="wp-block-paragraph">プロジェクトの概要や使い方などを記述するためのファイルです。</p>



<h4 class="wp-block-heading jinr-heading d--bold"><code>.gitignore</code></h4>



<p class="wp-block-paragraph">Git の管理から除外するファイルを指定する設定ファイルです。Python プロジェクトでは、仮想環境、キャッシュファイル、一時生成ファイルなどは Git 管理対象外として除外することが一般的です。</p>



<h4 class="wp-block-heading jinr-heading d--bold"><code>.python-version</code></h4>



<p class="wp-block-paragraph">使用する Python バージョンを指定するファイルです。プロジェクト単位で使用する Python バージョンを明示できます。仮想環境作成時に uv は、このファイルを参照しており、開発環境ごとの Python バージョン差異を防ぐことができるようになります。</p>



<h3 class="wp-block-heading jinr-heading d--bold">パッケージの管理方法</h3>



<p class="wp-block-paragraph">パッケージ管理は、<code>uv</code> コマンドを使用して実行します。作成したプロジェクトの配下で以下で紹介するようなコマンドを使用します。</p>



<h4 class="wp-block-heading jinr-heading d--bold">パッケージの追加</h4>



<p class="wp-block-paragraph">パッケージの追加は「<span class="jinr-d--text-color d--marker1 d--bold"><code>uv add</code></span>」コマンドで行います。以下は、NumPy の追加例です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">uv add numpy</pre>



<p class="wp-block-paragraph">複数のパッケージをまとめてインストールする場合は、スペースでパッケージを列挙すればまとめてインストールできます。</p>



<p class="wp-block-paragraph">仮想環境や <code>lock</code> ファイルがない場合は生成され、<code>lock</code> ファイルには、依存パッケージの具体的なバージョン情報が記録され、プロジェクトの依存関係を再現できます。</p>



<h4 class="wp-block-heading jinr-heading d--bold">パッケージの削除</h4>



<p class="wp-block-paragraph">パッケージを削除する場合は「<span class="jinr-d--text-color d--marker1 d--bold"><code>uv remove</code></span>」コマンドを次のようにします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">uv remove numpy</pre>



<p class="wp-block-paragraph"><code>uv add</code> や <code>uv remove</code> で操作されたパッケージの依存関係は自動的に解決され、<code>uv.lock</code> が更新されます。</p>



<h4 class="wp-block-heading jinr-heading d--bold">依存関係の表示（<code>uv tree</code>）</h4>



<p class="wp-block-paragraph">インストールしたパッケージの依存関係ツリーを表示したい場合には「<span class="jinr-d--text-color d--marker1 d--bold"><code>uv tree</code></span>」コマンドを使用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">uv tree</pre>



<p class="wp-block-paragraph">例えば、NumPy、pandas、scikit-learn をインストールした状態だと以下のような依存性のツリーを確認できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">my-project v0.1.0
├── numpy v2.4.2
├── pandas v3.0.1
│   ├── numpy v2.4.2
│   ├── python-dateutil v2.9.0.post0
│   │   └── six v1.17.0
│   └── tzdata v2025.3
└── scikit-learn v1.8.0
    ├── joblib v1.5.3
    ├── numpy v2.4.2
    ├── scipy v1.17.1
    │   └── numpy v2.4.2
    └── threadpoolctl v3.6.0</pre>



<h3 class="wp-block-heading jinr-heading d--bold"><code>uv run</code> によるプログラム実行</h3>



<p class="wp-block-paragraph">uv では、「<span class="jinr-d--text-color d--marker1 d--bold"><code>uv run</code></span>」コマンドを使用して以下のようにプログラムを実行できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">uv run main.py</pre>



<p class="wp-block-paragraph">通常 Python 開発環境を利用する場合には、以下のような手順を踏む必要があります。</p>



<ol class="wp-block-list jinr-list">
<li>仮想環境（<code>venv</code>）を作成</li>



<li>仮想環境を <code>activate</code></li>



<li>Python プログラムを実行</li>
</ol>



<p class="wp-block-paragraph">一方で、<code>uv run</code> を用いると、仮想環境が自動的に管理されるため、<code>activate</code> を意識せずにプログラムの実行ができます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">仮想環境（<code>.venv</code>）や <code>uv.lock</code> の生成タイミング</h3>



<p class="wp-block-paragraph"><code>uv init</code> でプロジェクトを生成したタイミングでは、仮想環境（<code>.venv</code>）や uv.lock ファイルは、生成されません。</p>



<p class="wp-block-paragraph">これらは上記で紹介したような「<code>uv run</code>」「<code>uv add</code>」などのプロジェクトコマンドが最初に実行されたタイミングで生成されます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">仮想環境の自動管理</h3>



<p class="wp-block-paragraph">uv では、仮想環境が自動的に管理されるため、明示的な venv の作成や activate を意識する必要がありません。プロジェクト単位で Python 環境が管理されるため、複数のプロジェクトを扱う場合でも環境の衝突を防ぐことができます。また、プロジェクトごとに Python のバージョン指定をすることも可能です。</p>



<h3 class="wp-block-heading jinr-heading d--bold">uv 使用に関する注意点</h3>



<p class="wp-block-paragraph">uv は、新しい Python プロジェクトでは非常に有力な選択肢となります。一方で、pip を中心としたプロジェクト管理と比較すると歴史はまだ浅いです。</p>



<p class="wp-block-paragraph">既存の大規模プロジェクトへ導入する場合は、CI / CD 環境との整合性やチーム運用方針を確認しながら、段階的に導入を検討すると良いでしょう。新規のプロジェクトでは、ぜひ uv の採用を検討してみてください。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph"><strong>【参考】Rust の Cargo との類似性</strong></p>



<p class="wp-block-paragraph">Rust での開発を経験したことがある場合、uv の設計は Cargo と似ていると感じるかもしれません。</p>



<p class="wp-block-paragraph">Cargo は、Rust 公式パッケージマネージャ兼ビルドツールであり、依存関係管理やビルドなどを 1 つのツールで扱うことができます。</p>



<p class="wp-block-paragraph">uv も同様に、プロジェクト管理・依存関係管理・実行などを統合して提供しており、設計思想に共通点があります。</p>
</div>
		</div></section>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Python で近年注目されている <span class="jinr-d--text-color d--marker1 d--bold">uv</span> というパッケージおよびプロジェクト管理ツールについて解説しました。</p>



<p class="wp-block-paragraph">uv は、Rust 製の高速な Python パッケージ・プロジェクト管理ツールです。pip での環境構築では複数ツールを組み合わせて行っていた「パッケージ管理」「仮想環境管理」「依存関係管理」を統合的に提供します。</p>



<p class="wp-block-paragraph">uv は、pip に比べると歴史が浅いため、大規模プロジェクトでの採用には、段階的導入を検討するなど注意が必要ですが、新規プロジェクトでは、シンプルで再現性の高い開発環境を構築できるツールとして有力な選択肢となるでしょう。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/python-uv-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python】VSCode × Ruff で自動フォーマット＆Lint 設定方法</title>
		<link>https://tech.nkhn37.net/python-vscode-ruff/</link>
					<comments>https://tech.nkhn37.net/python-vscode-ruff/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 13 Feb 2026 20:00:00 +0000</pubDate>
				<category><![CDATA[VS Code]]></category>
		<category><![CDATA[black]]></category>
		<category><![CDATA[flake8]]></category>
		<category><![CDATA[isort]]></category>
		<category><![CDATA[ruff]]></category>
		<category><![CDATA[Rust]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=13948</guid>

					<description><![CDATA[Python の高速なリンター兼フォーマッターである Ruff の概要と VSCode での設定方法を解説します。 Ruff とは Ruff（ラフ）は、Python 向けの高速なリンター兼フォーマッターです。プログラム言 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Python の高速なリンター兼フォーマッターである <span class="jinr-d--text-color d--marker1 d--bold">Ruff の概要と VSCode での設定方法</span>を解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Ruff とは</h2>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">Ruff（ラフ）</span>は、Python 向けの高速なリンター兼フォーマッターです。プログラム言語としては、Rust で実装されており、従来の flake8、black、isort が担っていた役割を 1 つのツールで担える点が特徴です。</p>



<p class="wp-block-paragraph">Ruff は、CLI ツールとして利用できるため Visual Studio Code (VS Code) に限らず、その他の統合開発環境（IDE）でも使用できます。</p>



<p class="wp-block-paragraph">この記事では、Python の開発環境として非常によく利用されている VS Code での利用方法に焦点をあてて解説します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Ruff でできること</h3>



<p class="wp-block-paragraph">Ruff では、主に以下の機能を提供します。</p>



<ul class="wp-block-list jinr-list">
<li>フォーマット（コード整形）</li>



<li>静的解析（Lint）</li>



<li><code>import</code> の整理</li>
</ul>



<p class="wp-block-paragraph">コマンドとしては以下のように使用できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ruff format .</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ruff check . --fix</pre>



<p class="wp-block-paragraph">Ruff は、コード整形でよく使われる black 互換のフォーマット機能、flake8 の静的解析（Lint）、isort 相当の import 整理機能を 1 つのツールで扱うことができます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Ruff の特徴</h3>



<p class="wp-block-paragraph">Ruff の主な特徴を整理しておきます。</p>



<h4 class="wp-block-heading jinr-heading d--bold"> 高速性</h4>



<p class="wp-block-paragraph">Ruff は、プログラム言語の Rust で実装がされており、大規模プロジェクトでも非常に高速に動作します。</p>



<p class="wp-block-paragraph">Rust は、C/C++に匹敵する高性能を持ちながら、メモリ安全性が高く、Pythonなどのモダンな言語に見られる表現のしやすさも備えている、非常に優れた言語です。従来の Python 製リンターと比較しても非常に高速です。</p>



<h4 class="wp-block-heading jinr-heading d--bold">多機能な静的解析（Lint）</h4>



<p class="wp-block-paragraph">flake8 のルールに加えて、多数のルールを内包しており、<code>pyproject.toml</code> によりルールを細かく制御することができます。</p>



<h4 class="wp-block-heading jinr-heading d--bold">設定の一元管理</h4>



<p class="wp-block-paragraph">設定は、<code>pyproject.toml</code> にまとめて記述することができます。これにより、フォーマットと Lint の設定を同一ファイルで管理できます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Ruff の歴史と位置づけ</h3>



<p class="wp-block-paragraph">Ruff は、2022 年頃に登場して急速に注目を集めてきました。高速性と利便性から、多くのプロジェクトでの採用が進んでいます。</p>



<p class="wp-block-paragraph">近年では、Rust 製のツールが Python エコシステムを補完する動きが多くみられます（uv や Polars など）。その流れの中で、Ruffも実用的で高速な開発基盤ツールとして位置づけられています。新規プロジェクトでは black や isort の代替として、Ruff を採用するケースも増えています。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">JetBrains 社の「<a href="https://blog.jetbrains.com/ja/pycharm/2025/09/the-state-of-python/" target="_blank" rel="noreferrer noopener">2025 年 Python の現状</a>」というブログ記事でも、Rust は過去数年間にわたって Python のパフォーマンスを支えてきている旨の記載があります。</p>
</div>
		</div></section>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">私は、Rust も非常に好きな言語で Python と同様に学習サイト「<a href="https://rust-tech.nkhn37.net/" target="_blank" rel="noreferrer noopener">Rust Tech ~Rust学習サイト~</a>」も運営しています。</p>



<p class="wp-block-paragraph">なお、Rust の特徴は「<a href="https://rust-tech.nkhn37.net/rust-overview-guide/" target="_blank" rel="noreferrer noopener">Rustとは？特徴や他言語との違いまで徹底解説！</a>」にまとめているので参考にしてください。</p>
</div>
		</div></section>



<h2 class="wp-block-heading jinr-heading d--bold">VSCode で Ruff を設定して使用する方法</h2>



<p class="wp-block-paragraph">ここからは、VS Code で Ruff を実際に利用する方法を解説します。なお、Ruff は CLI ツールであるため、以下の両方が必要です。</p>



<ul class="wp-block-list jinr-list">
<li>プロジェクトに Ruff をインストールする</li>



<li>VS Code の Ruff 拡張をインストールする</li>
</ul>



<p class="wp-block-paragraph">それぞれをインストールした上での基本的な設定方法などを紹介していきます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Ruff のインストール</h3>



<p class="wp-block-paragraph">Ruff をインストールする場合は、以下のようにインストールします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install ruff</pre>



<p class="wp-block-paragraph">また、uv を使用している場合は、以下でインストールします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">uv add ruff</pre>



<p class="wp-block-paragraph">ここで、インストールされるのは Ruff 本体の CLI ツールです。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Ruff の VSCode 拡張のインストール</h3>



<p class="wp-block-paragraph">次に、VS Code 拡張機能から Ruff をインストールします。VS Code の拡張機能で「Ruff」と検索すると、Astral Software の Ruff 拡張が検索できますのでインストールします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="874" height="174" src="https://tech.nkhn37.net/wp-content/uploads/2026/02/image.png" alt="VS Code の Ruff 拡張" class="wp-image-13963" srcset="https://tech.nkhn37.net/wp-content/uploads/2026/02/image.png 874w, https://tech.nkhn37.net/wp-content/uploads/2026/02/image-300x60.png 300w, https://tech.nkhn37.net/wp-content/uploads/2026/02/image-768x153.png 768w" sizes="(max-width: 874px) 100vw, 874px" /></figure>
</div>


<p class="wp-block-paragraph">Ruff 本体は、CLI ツールであり、この VS Code 拡張は、エディタ連携のための拡張機能という位置づけとなっています。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Ruff に関する VS Code の基本的な設定（<code>setting.json</code>）</h3>



<p class="wp-block-paragraph">Ruff を使用するにあたっての VS Code 側の基本的な設定を紹介します。</p>



<p class="wp-block-paragraph">VS Code の「<code>Ctrl + Shift + P</code>」でコマンドパレットを開き、「Preferences: Open Settings (JSON)」から <code>setting.json</code> を開きます。</p>



<p class="wp-block-paragraph">VS Code の設定は大きく次の 3 種類があります。</p>



<ul class="wp-block-list jinr-list">
<li>既定値（Default）：VS Code 本体や拡張機能が持つ初期設定</li>



<li>ユーザー設定（User）：ユーザー個人に適用される設定</li>



<li>ワークスペース設定（Workspace）：プロジェクト単位に適用される設定</li>
</ul>



<p class="wp-block-paragraph">プロジェクト単位で Ruff 有効にしたい場合は、ワークスペース設定（<code>.vscode/settings.json</code>）に記述するのがおすすめです。チーム開発では、この方法により設定を共有できます。</p>



<p class="wp-block-paragraph">一方、自身が扱うすべてのプロジェクトで Ruff を有効にしたい場合は「ユーザー設定（User）」に記述しても問題ありません。</p>



<p class="wp-block-paragraph">settings.json に以下の記載を追加してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="json" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">{
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.fixAll.ruff": "explicit",
      "source.organizeImports.ruff": "explicit"
    }
  }
}</pre>



<p class="wp-block-paragraph">各項目の補足説明は以下の通りです。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>説明</th></tr></thead><tbody><tr><td><code>[python]</code></td><td>Python 言語モードのファイル（通常は .py）にのみ適用される設定です。他言語への影響を防ぐために、Ruff 関連の設定はこのセクションにまとめておくのがおすすめです。</td></tr><tr><td><code>editor.defaultFormatter</code></td><td>&#8220;charliermarsh.ruff&#8221; を指定することで、Python ファイルのフォーマッターとして Ruff を指定します。</td></tr><tr><td><code>editor.formatOnSave</code></td><td><code>true</code> に設定することでファイル保存時に自動でフォーマットを実行します。</td></tr><tr><td><code>editor.codeActionsOnSave</code></td><td>保存時に追加で実行するコードアクションを指定します。</td></tr><tr><td><code>source.fixAll.ruff</code></td><td>Ruff による Lint エラーの自動修正を保存時に実行します。</td></tr><tr><td><code>source.organizeImports.ruff</code></td><td>Ruff による <code>import</code> 文の整理（<code>isort</code> 相当）を保存時に実行します。</td></tr></tbody></table></figure>



<h3 class="wp-block-heading jinr-heading d--bold">Ruff の詳細設定（<code>pyproject.toml</code>）</h3>



<p class="wp-block-paragraph">Ruff の詳細設定は <code>pyproject.toml</code> に記述します。</p>



<p class="wp-block-paragraph">Ruff は、デフォルトでも実用的な設定が有効になっているため、基本的には、<code>pyproject.toml</code> に追加の設定を記述しなくても利用できます。</p>



<p class="wp-block-paragraph">ただし、プロジェクト方針やコーディング規約に応じて、設定を明示的に変更することも可能です。ここでは、代表的な設定の一部を紹介します。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">Ruff の設定は以下で紹介する項目以外にも多くの設定があります。指定可能な項目については、公式ドキュメントの <a href="https://docs.astral.sh/ruff/settings/" target="_blank" rel="noreferrer noopener">Settings</a>を参照してください。</p>
</div>
		</div></section>



<h4 class="wp-block-heading jinr-heading d--bold">基本設定 <code>[tool.ruff]</code></h4>



<p class="wp-block-paragraph">Ruff の基本的な挙動は <code>[tool.ruff]</code> セクションで設定します。</p>



<p class="wp-block-paragraph">例えば、代表的な設定として、1 行当たりの最大文字数は以下のように設定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[tool.ruff]
line-length = 88</pre>



<p class="wp-block-paragraph">Ruff のデフォルトは、black 互換の設定の 88 文字であるため、基本的に上記のような記載は必要ありません。</p>



<p class="wp-block-paragraph">一方で、PEP8 準拠の 79 文字にしたい場合には、次のように指定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[tool.ruff]
line-length = 79</pre>



<p class="wp-block-paragraph">プロジェクトのコーディング規約にあわせて調整してください。</p>



<h4 class="wp-block-heading jinr-heading d--bold">Lint 設定 <code>[tool.ruff.lint]</code></h4>



<h5 class="wp-block-heading jinr-heading d--bold">ルール群の指定方法（<code>select</code>）</h5>



<p class="wp-block-paragraph">Ruff には、複数のリントルールがあります。こちらも基本的にはデフォルト設定で問題ありませんが、以下のように <code>[tool.ruff.lint]</code> セクションで制御できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[tool.ruff.lint]
select = ["E", "F", "I"]</pre>



<p class="wp-block-paragraph"><code>select</code> では、ルール群を表す文字列を指定します。なお、Ruff の記事執筆時点でのデフォルト設定は、<code>["E4", "E7", "E9", "F"]</code> です。これは、実行時エラーにつながる可能性が高い問題や、明確なコーディングエラーを中心に検出するルール群が有効になっていることを意味します。</p>



<p class="wp-block-paragraph">リントのルール一覧は、公式ページの <a href="https://docs.astral.sh/ruff/rules/" target="_blank" rel="noreferrer noopener">Rules</a> ページにまとめられています。このページの「Code」列に書かれている値が各ルールを示すコードです。</p>



<p class="wp-block-paragraph">例えば、<code>"E"</code> は、pycodestyle 由来のルール群を示します。また、<code>"E4"</code> は <code>"E4"</code>から始まるルールコードをまとめて指定する指定方法で、Rules ページを確認すると、<code>"E4"</code> には以下のルールが含まれることになります。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Code</th><th>Name</th><th>Message</th></tr></thead><tbody><tr><td>E401</td><td>multiple-imports-on-one-line</td><td>Multiple imports on one line</td></tr><tr><td>E402</td><td>module-import-not-at-top-of-file</td><td>Module level import not at top of cell</td></tr></tbody></table><figcaption class="wp-element-caption">※ 記事執筆時点での<a href="https://docs.astral.sh/ruff/rules/" target="_blank" rel="noreferrer noopener">公式ページ</a>から抜粋</figcaption></figure>



<p class="wp-block-paragraph">なお、<code>"E"</code> を指定すれば、<code>"E"</code> から始まる pycodestyle 由来のリントルール群がすべて有効になります。</p>



<h5 class="wp-block-heading jinr-heading d--bold">ルールの除外（<code>ignore</code>）</h5>



<p class="wp-block-paragraph">まとめて指定した際に、特定ルールのみを除外したい場合は、<code>ignore</code> を使用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[tool.ruff.lint]
select = ["E", "F", "I"]
ignore = ["E501"]</pre>



<p class="wp-block-paragraph">上記では、<code>"E"</code> から始まるルール群をすべて有効にしつつ、<code>"E501"</code>（行長の違反） のみを除外しています。</p>



<p class="wp-block-paragraph">Ruff は、デフォルト設定でも十分実用的です。まずは、デフォルトのまま導入し、必要に応じて、<code>pyproject.toml</code> を用いて柔軟に調整していくのがおすすめです。プロジェクトの方針に応じて検討してください。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Python の高速なリンター兼フォーマッターである <span class="jinr-d--text-color d--marker1 d--bold">Ruff の概要と VSCode での設定方法</span>を解説しました。</p>



<p class="wp-block-paragraph">Ruff を導入することで、コード整形や静的解析（Lint）、import 整理といった機能を 1 つのツールで扱うことができるようになります。Ruff は、Rust で実装がされており非常に高速であることが特徴です。</p>



<p class="wp-block-paragraph">VS Code と組み合わせることで、保存時に自動フォーマットや Lint 修正が実行され、より快適な Python 開発環境を構築できます。</p>



<p class="wp-block-paragraph">Ruff 自体の設定方法についても一部紹介しましたが、Ruff はデフォルト設定でも十分実用的であり、まずは最小構成で導入し、必要に応じて <code>pyproject.toml</code> で調整していくのがおすすめです。</p>



<p class="wp-block-paragraph">ぜひプロジェクトに導入してみてください。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/python-vscode-ruff/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Databricks Community Editionを使用する方法</title>
		<link>https://tech.nkhn37.net/databricks-community-edition-start/</link>
					<comments>https://tech.nkhn37.net/databricks-community-edition-start/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 11 Oct 2024 20:00:00 +0000</pubDate>
				<category><![CDATA[Databricks]]></category>
		<category><![CDATA[community edition]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=11822</guid>

					<description><![CDATA[Databricks Community Edition を使用する方法について解説します。 Databricks とは Databricks は、ビックデータ分析や機械学習に特化したソフトウェアの企業です。Databr [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">Databricks Community Edition を使用する方法</span>について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Databricks とは</h2>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">Databricks</span> は、ビックデータ分析や機械学習に特化したソフトウェアの企業です。Databricks は、Apache Spark の開発者を中心として立ち上げられ、レイクハウスという概念を提唱して広げていった先駆者として有名です。なお、提供されているデータ基盤のサービス名も Databricks と言います。</p>



<p class="wp-block-paragraph">Databricks は、データの蓄積・加工から機械学習までの一連のデータ活用を強力にサポートしてくれるサービスです。Databricksは今後のデータ活用の中心的なサービスの一つになると私は考えています。</p>



<p class="wp-block-paragraph">Databricks では、AWS や Azure などのクラウド環境上で用意するのが一般的ですが、学習等で試してみたいといった場合、クラウド環境の準備は費用的にも負担がかかります。このような時には、<span class="jinr-d--text-color d--marker1 d--bold">Databricks Community Edition</span> で使用してみることがおすすめです。</p>



<p class="wp-block-paragraph">Databricks Community Edition は、機能が限定されますが、期限なく無償で利用することができます。この記事では、Databricks Community Edition を使用する方法について説明します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Databricks Community Edition の始め方</h3>



<p class="wp-block-paragraph"><strong>Databricks Community Edition</strong> は、独自のクラウドアカウントやコンピューティングリソース、ストレージを用意する必要なくDatabricksを試すことができます。</p>



<p class="wp-block-paragraph">ただし、Databricks Platform Free Trial で利用できるいくつかの機能（REST APIなど）は、Databricks Community Edition では利用できません。</p>



<h4 class="wp-block-heading jinr-heading d--bold">Databricksのアカウント作成とサインアップ</h4>



<p class="wp-block-paragraph">Databricks Community Edition にサインアップするには以下の手順で実施します。<br><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">※以降の画面は、記事執筆当時のもので変更されている可能性があります。</mark></p>



<p class="wp-block-paragraph"><a href="https://www.databricks.com/jp/try-databricks#account" target="_blank" rel="noreferrer noopener">Databricks 無料トライアル</a>にアクセスし、氏名やメールアドレスといった情報を入力して「続行」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="530" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-5-1024x530.png" alt="Databricks 無料トライアル アカウント作成" class="wp-image-11826" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-5-1024x530.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-5-300x155.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-5-768x397.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-5.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">個人で利用の欄の「Community Editionのトライアルを開始」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="552" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-6-1024x552.png" alt="Databricks 無料トライアル 個人で利用" class="wp-image-11827" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-6-1024x552.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-6-300x162.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-6-768x414.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-6.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">登録したメールアドレスにアドレス確認のメールが届きます。メールアドレスを認証するリンクがありますので、リンクをクリックしてください。</p>



<p class="wp-block-paragraph">以下のようにパスワードの設定画面が出ますのでパスワードを設定します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="387" height="361" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-7.png" alt="Databricks 初期パスワード設定" class="wp-image-11828" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-7.png 387w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-7-300x280.png 300w" sizes="(max-width: 387px) 100vw, 387px" /></figure>
</div>


<p class="wp-block-paragraph">Databricks 画面にログインしますが、右上に日本語設定の画面が出ますので、日本語で使いたい人は「日本語を使う」ボタンを押してもらうと日本語画面で使用できます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="375" height="157" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-9.png" alt="Databricks 日本語で使用する" class="wp-image-11830" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-9.png 375w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-9-300x126.png 300w" sizes="(max-width: 375px) 100vw, 375px" /></figure>
</div>


<p class="wp-block-paragraph">以下のような画面にログインができれば、Databricks を利用する環境が整います。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="451" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-10-1024x451.png" alt="Databricks ダッシュボード" class="wp-image-11831" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-10-1024x451.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-10-300x132.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-10-768x338.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-10-1536x676.png 1536w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-10.png 1674w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">再度ログインする場合は「<a href="https://community.cloud.databricks.com/login.html" target="_blank" rel="noreferrer noopener">Community Editionログインページ</a>」からログインするようにしてください。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Databricks の使用方法</h3>



<p class="wp-block-paragraph">Notebook を使ってプログラムを実行する簡単な例で Databricks を使う手順を紹介します。Databricks は大きく以下のような手順で使用します。</p>



<ol class="wp-block-list jinr-list">
<li>クラスターの作成と起動：プログラムを実行する環境を作成して起動します。</li>



<li>Notebook の作成：プログラムを作成します。</li>



<li>Notebook の実行：プログラムを実行します。</li>
</ol>



<p class="wp-block-paragraph">ここで、クラスターとは機能を実行する処理環境であると思ってください。作成した Notebook は作成したクラスター上で実行されます。また、Notebook はプログラムを記載するファイルのことです。</p>



<p class="wp-block-paragraph">Jupyter Notebook を使用したことがある人は同じようなものであると思ってもらえればよいですが、相互に完全な互換性があるわけではありません。</p>



<h4 class="wp-block-heading jinr-heading d--bold">クラスターの作成と起動</h4>



<p class="wp-block-paragraph">画面左の「クラスター」をクリックします。最初の時点では実行のためのコンピュート用クラスターがないため「コンピューティングを作成」をクリックして作成します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="461" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-13-1024x461.png" alt="" class="wp-image-11834" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-13-1024x461.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-13-300x135.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-13-768x346.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-13.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">クラスター作成画面で項目を入力・選択して「コンピューティングを作成」をクリックします。クラスターの作成・起動までには数分程度かかる場合があります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="488" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-18-1024x488.png" alt="Databricks クラスターの作成" class="wp-image-11841" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-18-1024x488.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-18-300x143.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-18-768x366.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-18.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<ul class="wp-block-list jinr-list">
<li>コンピュート名：作成するクラスターの名前を設定します。</li>



<li>Databricks Runtime のバージョン：Runtime 環境のバージョンをプルダウンから選択します。</li>



<li>インスタンス：インスタンスは無料の 15 GBメモリで 1 ~ 2 時間のアイドル状態で自動終了します。</li>
</ul>



<p class="wp-block-paragraph">クラスターの画面が表示され、実行中のマークがついていれば作成と起動が完了です。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="433" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-19-1024x433.png" alt="Databricks クラスターの作成完了" class="wp-image-11842" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-19-1024x433.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-19-300x127.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-19-768x325.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-19.png 1174w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h4 class="wp-block-heading jinr-heading d--bold">Notebook の作成</h4>



<p class="wp-block-paragraph">次にプログラムを実際に作って動かしてみましょう。</p>



<p class="wp-block-paragraph">Databricks に登録するとワークスペースの Users の下に登録メールアドレスのユーザーが作られています。当該ワークスペースを使うことでプログラミングやファイルの作成を行っていくことができます。</p>



<p class="wp-block-paragraph">作成ボタンから「ノートブック」を選択すると Notebook 画面が表示されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="432" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-20-1024x432.png" alt="Databricks ノートブックの作成" class="wp-image-11843" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-20-1024x432.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-20-300x127.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-20-768x324.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-20.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">Notebook画面左上でファイル名を変更でき、画面右側でクラスターを指定できます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="420" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-21-1024x420.png" alt="Databricks Notebookの作成" class="wp-image-11844" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-21-1024x420.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-21-300x123.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-21-768x315.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-21.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">Notebook のデフォルト言語は「Python」になっていますが、SQL やScala、R といった言語を指定することもできます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="236" height="273" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-22.png" alt="Databricks デフォルト言語設定" class="wp-image-11845"/></figure>
</div>


<p class="wp-block-paragraph">なお、Databricks ではセルごとに実行言語を指定できるミックス言語に対応しています。セルの冒頭でマジックコマンド <code>%&lt;language></code> を指定します。具体的には「<code>%python</code>」「<code>%r</code>」「<code>%scala</code>」「<code>%sql</code>」です。これにより、Python がデフォルトのノートブックの途中で SQL を発行するといったことも簡単にできます。</p>



<p class="wp-block-paragraph">また、「<code>%md</code>」とすることで Markdown のテキストを記載できるので、プログラムの内容を記載しておくことも可能です。</p>



<h4 class="wp-block-heading jinr-heading d--bold">サンプルプログラムを作成してみる</h4>



<p class="wp-block-paragraph">実際に簡単なプログラムを作成してみましょう。PySpark のデータフレームを作成して、テーブルに保存、読みだして表示という一連の流れを作成してみましょう。</p>



<h5 class="wp-block-heading jinr-heading d--bold">データを生成する</h5>



<p class="wp-block-paragraph">以下のようなプログラムを、Databricks のセルに入力して、セルの<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/25b6.png" alt="▶" class="wp-smiley" style="height: 1em; max-height: 1em;" />ボタンを押すか「Shift + Enter」で実行します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">from pyspark.sql.types import StructType, StructField, StringType, IntegerType

# スキーマ定義
schema = StructType(
    [
        StructField("name", StringType(), True),
        StructField("age", IntegerType(), True),
    ]
)

# データを作成
data = [("Taro", 25), ("Hanako", 30), ("Yuki", 20)]

# スキーマを指定してデータフレームを作成
df = spark.createDataFrame(data, schema=schema)

# DataFrameの内容表示
# df.show()
display(df)</pre>



<p class="wp-block-paragraph">実際には以下のようにとなります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="691" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-23-1024x691.png" alt="Databricks データフレームの作成と表示" class="wp-image-11846" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-23-1024x691.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-23-300x202.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-23-768x518.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-23.png 1254w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">データ表示は、DataFrame の <code>show</code> メソッドで表示してもいいのですが、Databricksでは <code>display</code> という高機能なデータ表示機能が使用できます。</p>



<p class="wp-block-paragraph">各列の値でソートができたり、＋ボタンで「可視化」や「データプロファイル」をクリックすることでデータフレームの内部の情報を集計した内容を確認したりできます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="454" height="198" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-28.png" alt="Databricks display 可視化 データプロファイル" class="wp-image-11854" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-28.png 454w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-28-300x131.png 300w" sizes="(max-width: 454px) 100vw, 454px" /></figure>
</div>


<p class="wp-block-paragraph">「可視化」では、データに対してバーやヒストグラムといった基本的な可視化をすることが可能です。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="694" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-30-1024x694.png" alt="Databrikcs display 可視化設定" class="wp-image-11857" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-30-1024x694.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-30-300x203.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-30-768x520.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-30-1536x1041.png 1536w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-30.png 1681w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">データプロファイルでは、以下のように各列のプロファイル情報を表示できます。平均などの統計値や、データ欠損がどれだけあるかなどデータに対する情報を簡単に取り出せるため、その後のデータ加工に非常に役立ちます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="541" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-29-1024x541.png" alt="Databricks display データプロファイル" class="wp-image-11856" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-29-1024x541.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-29-300x158.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-29-768x406.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-29.png 1187w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h5 class="wp-block-heading jinr-heading d--bold">データを書き込む</h5>



<p class="wp-block-paragraph">次にデータを Delta Lake のテーブルに書き込んでみましょう。以下のような内容をセルに打ち込んで実行してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># データの書き込み
df.write.format("delta").mode("overwrite").saveAsTable("test_table")</pre>



<p class="wp-block-paragraph">上記実行により DataFrame の内容は「<code>test_table</code>」というテーブル名で保存されます。このデータは Delta Lake 形式で保存されます。Delta Lake については「<a href="https://tech.nkhn37.net/pyspark-delta-lake/" target="_blank" rel="noreferrer noopener">Delta Lakeの使い方の基本</a>」も参考にしてください。</p>



<p class="wp-block-paragraph">登録したテーブルは、データの「カタログ」として使用することができます。Community Edition では、Hive を利用した <code>hive_metastore.default</code> というカタログに登録されます。画面左のカタログから <code>default</code> をクリックすると作成したテーブルが見つけられます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="734" height="335" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-24.png" alt="Databricks カタログ default" class="wp-image-11849" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-24.png 734w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-24-300x137.png 300w" sizes="(max-width: 734px) 100vw, 734px" /></figure>
</div>


<p class="wp-block-paragraph">作成した <code>test_table</code> をクリックすると、テーブル情報を確認できます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="528" height="633" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-25.png" alt="Detabricks カタログ (Hive metastore)" class="wp-image-11850" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-25.png 528w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-25-250x300.png 250w" sizes="(max-width: 528px) 100vw, 528px" /></figure>
</div>


<p class="wp-block-paragraph">有償の Databricks では、<span class="jinr-d--text-color d--marker1 d--bold">Unity Catalog</span> という高機能なカタログが使用できますが、Community Edition では使用できません。Unity Catalog では、スキーマ、テーブルを階層的に管理でき、メタデータに対して一貫したセキュリティポリシーやアクセス制御ができるなど、より強力にデータガバナンスの実現ができます。</p>



<h5 class="wp-block-heading jinr-heading d--bold">データを読み込む</h5>



<p class="wp-block-paragraph">カタログに登録したテーブルのデータを読み込むには以下のようなコードで簡単に読み込みが実行できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># データの読み込み
df_read = spark.read.format("delta").table("test_table")

display(df_read)</pre>



<p class="wp-block-paragraph">具体的な実行結果では以下のようになります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="475" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-32-1024x475.png" alt="Databricks データフレームの読み込み" class="wp-image-11880" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-32-1024x475.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-32-300x139.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-32-768x356.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-32.png 1242w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">Databricks Community Edition を使用する方法</span>について解説しました。</p>



<p class="wp-block-paragraph">Databricks は、データ活用のための非常に高機能なデータ基盤サービスです。一般的には、AWS やAzure などのクラウド環境上で用意しますが、学習用などに使ってみたい場合には、Databricks Community Edition を使用するのがおすすめです。</p>



<p class="wp-block-paragraph">この記事では、Community Edition の準備をして、クラスター作成・Notebook の実行までの一連の流れについて紹介をしました。</p>



<p class="wp-block-paragraph">Databricks は、今後のデータ活用の中心的なサービスの一つになると私は思います。Community Edition を使って、どのようなサービスか無料で試してもらえると良いかと思います。また、有償版では Unity Catalog など Community Edition では使用できない優れたサービスもありますので、是非企業での活用も検討してみてください。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/databricks-community-edition-start/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker Desktopを使わずにWSL2上でDockerを使用する方法</title>
		<link>https://tech.nkhn37.net/docker-on-wsl2-without-docker-desktop/</link>
					<comments>https://tech.nkhn37.net/docker-on-wsl2-without-docker-desktop/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 05 Oct 2024 20:00:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Desktop]]></category>
		<category><![CDATA[WSL 2]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=11777</guid>

					<description><![CDATA[Docker Desktop を使わずに WSL2 上の Linux で Docker を使用する方法を解説します。 Docker Docker は、アプリケーションを軽量なコンテナとしてパッケージ化し、実行するための仮 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">Docker Desktop を使わずに WSL2 上の Linux で Docker を使用する方法</span>を解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Docker</h2>



<p class="wp-block-paragraph">Docker は、アプリケーションを軽量なコンテナとしてパッケージ化し、実行するための仮想環境です。これにより開発環境や本番環境など異なる環境間での一貫した動作が可能となります。</p>



<p class="wp-block-paragraph">この記事では、<span class="jinr-d--text-color d--marker1 d--bold">Docker Desktopを使わずにWSL2上のLinuxでDockerを使用する方法</span>について紹介したいと思います。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Docker Desktop</h3>



<p class="wp-block-paragraph">Docker Desktop は、簡単にインストールできるアプリケーションです。Docker Desktop は、従業員数が 250 人以上 または 年間収益が 1,000 万ドルを超える組織では、有料サブスクリプションが必要です。</p>



<p class="wp-block-paragraph">ただし、以下のような条件に当てはまる場合は、無料で使用することができます。</p>



<ul class="wp-block-list jinr-list">
<li>従業員数が 250 人未満 <em>かつ</em> 年間収益が 1,000 万ドル未満の組織</li>



<li>個人のプロジェクトでの利用</li>



<li>教育目的での利用（学生や教育者によるもの）</li>



<li>非商用のオープンソースプロジェクトでの利用</li>
</ul>



<p class="wp-block-paragraph">上記条件に当てはまらない企業の場合で無償で Docker を使用したい場合には、Docker Desktop を使わない方法を検討する必要があります。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Docker を無償で使用する方法</h3>



<p class="wp-block-paragraph">Docker Desktop は上記の通り企業規模により有料サブスクリプションが必要になります。しかし、有料であるのは Docker Desktop であり、そのエンジンである Docker Engine 自体は無償で使用することができます。</p>



<p class="wp-block-paragraph">つまり、Linux 環境や WSL2（Windows Subsystem for Linux 2）上で Docker Engine をインストールして使用する分には問題ありません。</p>



<p class="wp-block-paragraph">以降では、Windows 11 環境を前提として、WSL2 上の Ubuntu で Docker を動作させて使用する方法を紹介していきます。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Docker Desktop を使わずに WSL2 上で<br>Docker を使用する</h2>



<h3 class="wp-block-heading jinr-heading d--bold">WSL2 で Ubuntu をインストールする</h3>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">WSL2（Windows Subsystem for Linux 2）</span>は、Windows 上で Linux 環境を動作させることができる環境です。</p>



<p class="wp-block-paragraph">コマンドプロンプトで、以下コマンドを実行することにより、WSL のインストールと Ubuntu のインストールを同時に実行することが可能です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --install -d Ubuntu</pre>



<p class="wp-block-paragraph">上記でインストールを完了すると Windows の検索で「ubuntu」が見つかるようになり、実行すると Ubuntu のターミナルが表示され、Ubuntu 環境を使用できるようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="746" height="194" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image.png" alt="WSL2 Ubuntu Windows11" class="wp-image-11779" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image.png 746w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-300x78.png 300w" sizes="(max-width: 746px) 100vw, 746px" /></figure>



<p class="wp-block-paragraph">以下のコマンドで Ubuntu のバージョンを確認できます。今回の例では、Ubunt24.04.1 LTS となっています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">lsb_release -a</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS
Release:        24.04
Codename:       noble</pre>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox5 ">
			<i class="jif jin-ifont-v2speaker" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">WSL関連のコマンドは以下を参考にしてください。</p>



<p class="wp-block-paragraph"><strong>【WSLのアップデート】</strong></p>



<p class="wp-block-paragraph">WSL をアップデートします。既に環境が入っている人はアップデートしておくことを推奨します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --update</pre>



<p class="wp-block-paragraph"><strong>【WSL環境のリストアップ】</strong></p>



<p class="wp-block-paragraph">WSL で使える環境を確認します。デフォルト環境は*がつきます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl -l -v</pre>



<p class="wp-block-paragraph"><strong>【実行バージョンの変更】</strong></p>



<p class="wp-block-paragraph">WSL の実行バージョンを 2 に変更します。&lt;ディストリビューション名> の部分には対象の環境名を指定してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --set-version &lt;ディストリビューション名> 2</pre>



<p class="wp-block-paragraph"><strong>【デフォルトバージョンの設定】</strong></p>



<p class="wp-block-paragraph">以降作成される環境のデフォルトを Version 2 に設定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --set-default-version 2</pre>
</div>
		</div></section>



<h3 class="wp-block-heading jinr-heading d--bold">Ubuntu 上に Docker をインストールする</h3>



<p class="wp-block-paragraph">Ubuntu のターミナルで以下を実行することで Docker 環境をインストールします。</p>



<h4 class="wp-block-heading jinr-heading d--bold">Ubuntuパッケージの更新</h4>



<p class="wp-block-paragraph">Ubuntu 自体のパッケージを更新しておきます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo apt update</pre>



<h4 class="wp-block-heading jinr-heading d--bold">Docker Engine のインストール</h4>



<p class="wp-block-paragraph">Docker のインストールスクリプトを実行します。インストールスクリプトに関する説明は Docker の公式ドキュメントの<a href="https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script" target="_blank" rel="noreferrer noopener">こちら</a>を参考にしています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh</pre>



<p class="wp-block-paragraph">スクリプトにスリープが入っていますので、しばらく待ってもらえると実行が進んでいきます。完了したら Docker のインストールが完了です。</p>



<p class="wp-block-paragraph">以下のコマンドで、Docker のサービスが実行されているかを確認してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo systemctl status docker</pre>



<p class="wp-block-paragraph">実行状態が、active(running) になっていれば Docker は起動しています。起動していないようであれば以下コマンドで実行してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo systemctl start docker</pre>



<h3 class="wp-block-heading jinr-heading d--bold">PySpark 環境を使ってみる</h3>



<p class="wp-block-paragraph">上記で WSL2 上の Ubuntu 環境に用意した Docker で PySpark の Docker 環境を使用してみましょう。</p>



<p class="wp-block-paragraph">PySpark は、Apache Spark という分散データ処理フレームワークを Python で利用できるようにする API です。Spark は分散環境なのでローカル環境の用意は大変ですし、クラウド環境では課金が生じます。このような時にローカルで PySpark 環境が準備できると非常に便利です。</p>



<p class="wp-block-paragraph">PySpark の Docker 環境を使う方法については「<a href="https://tech.nkhn37.net/docker-pyspark-notebook/" target="_blank" rel="noreferrer noopener">PySparkの実行環境をDockerで用意する方法</a>」に詳細に説明をしています。この記事は Docker Desktop を前提にしていますが、今回作成した環境でも同様に実行できることを確認します。</p>



<h4 class="wp-block-heading jinr-heading d--bold">Docker イメージの取得と実行</h4>



<p class="wp-block-paragraph">作成した ubuntu 環境のターミナルで以下コマンドで実行し、Docker Hub からPySpark を使用できる Jupyter Notebook 環境のイメージを取得します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">docker pull jupyter/pyspark-notebook</pre>



<h4 class="wp-block-heading jinr-heading d--bold">コンテナの作成と実行</h4>



<p class="wp-block-paragraph">以下のコマンドを実行することで PySpark の環境を起動することができます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">docker run --rm -it -p 8888:8888 -p 4040:4040 -v /mnt/d/docker1/pyspark_notebook_1:/home/jovyan/work jupyter/pyspark-notebook</pre>



<p class="wp-block-paragraph">コンテナが起動するとターミナルの表示の中に「<code>http://127.0.0.1:8888/lab?token=xxxxxxxxxx</code>」というような記載の文字列が表示されるかと思います。この URL をブラウザに入力することで Jupyter Lab を実行することができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="656" src="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-2-1024x656.png" alt="WSL2 Docker Jupyterlab" class="wp-image-11799" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/10/image-2-1024x656.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-2-300x192.png 300w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-2-768x492.png 768w, https://tech.nkhn37.net/wp-content/uploads/2024/10/image-2.png 1208w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">なお、WSL2 上の Ubuntu では <code>/mnt/c/</code> や <code>/mnt/d/</code> に C や D ドライブがマウントされます。上記実行時には <code>/mnt/d/docker1/pyspark_notebook_1</code> と指定しましたので、Jupyter Lab の <code>work</code> フォルダに作成されたファイルは <code>D:\docker1\pyspark_notebook_1</code> フォルダ内に保存されます。</p>



<h4 class="wp-block-heading jinr-heading d--bold"><code>wsl.conf</code> の修正（NTFSファイルシステムとの権限に関する問題）</h4>



<p class="wp-block-paragraph">上記環境構築をした際に PySpark のプログラムを動かすとファイルの書き込みに関するコードが失敗する事象が発生しました。NTFS ファイルシステムにおけるファイルの書き込み権限が原因でファイル操作が失敗したようです。</p>



<p class="wp-block-paragraph">上記のような問題は ubuntu 環境の <code>/etc/wsl.conf</code> ファイルに以下の記載を追記すると改善します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[automount]
options="metadata"</pre>



<p class="wp-block-paragraph"><code>automount</code> セクションは WSL が Windows のファイルシステムを自動的にマウントする際のオプションを設定するためのものです。通常 WSL2 は <code>/mnt/c</code> や <code>/mnt/d</code> のようにドライブごとに自動マウントします。</p>



<p class="wp-block-paragraph"><code>metadata</code> オプションは、Windows ファイルシステム上のファイルに対して Linux のメタデータ（所有者、権限情報など）を保存できるようにするもので、Linux の権限モデル（<code>chmod</code> や <code>chown</code> など）を Windows ファイルシステムで扱えるようにします。</p>



<p class="wp-block-paragraph">上記変更をした際には、以下で WSL を一度シャットダウンし、再度 ubuntu 環境を立ち上げ直してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --shutdown</pre>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">Docker Desktop を使わずに WSL2 上の Linux で Docker を使用する方法</span>を解説しました。</p>



<p class="wp-block-paragraph">Docker Desktop は一定規模以上の企業では有料サブスクリプションが必要となるため、Docker Desktop を使用しないで実行できる環境があると非常に便利です。Windows 環境上の場合は、WSL2 上に Ubuntu を構築して Docker Engine をインストールすることで実現ができます。</p>



<p class="wp-block-paragraph">この記事では一連の環境準備の方法について紹介しました。Docker 環境構築の参考にしていただければと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/docker-on-wsl2-without-docker-desktop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CUDA/cuDNNのインストール方法（Windows）</title>
		<link>https://tech.nkhn37.net/cuda-cudnn-install-windows/</link>
					<comments>https://tech.nkhn37.net/cuda-cudnn-install-windows/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sun, 23 Jul 2023 20:00:00 +0000</pubDate>
				<category><![CDATA[CUDA]]></category>
		<category><![CDATA[cuDNN]]></category>
		<category><![CDATA[NVIDIA]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=8419</guid>

					<description><![CDATA[NVIDIA の GPU を使った並列計算のための環境である CUDA Toolkit や関連するディープラーニングライブラリの cuDNN をインストールする方法について解説します。 CUDA と cuDNN CUDA [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">NVIDIA の GPU を使った並列計算のための環境である <span class="jinr-d--text-color d--marker1 d--bold">CUDA Toolkit</span> や関連するディープラーニングライブラリの <span class="jinr-d--text-color d--marker1 d--bold">cuDNN</span> をインストールする方法について解説します。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--heading-iconbox1 ">
			<div class="a--heading-iconbox-title">
			<div class="a--iconbox-title-icon"><i class="jif jin-ifont-caution" aria-hidden="true"></i></div>
			<div class="a--iconbox-title-text">注意点</div>
			</div>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">※記載している画面やバージョンは、記事執筆時点のものです。</p>



<p class="wp-block-paragraph">CUDA 12.x 以降では cuDNN の提供方法が変わるなど、一部仕様が更新されています。ただし、インストール時の基本的な考え方（GPU ドライバの確認 → 適切な CUDA の選択 → 対応する cuDNN の導入 → 利用するフレームワークの互換性確認）は現在も変わっていません。この記事はその流れを理解する参考として役立てていただければと思います。</p>
</div>
		</div></section>



<h2 class="wp-block-heading jinr-heading d--bold">CUDA と cuDNN</h2>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">CUDA (Compute Unified Device Architecture)</span> とは、米 NVIDIA 社が自社グラフィックスプロセッサ (GPU) 向けに開発提供する並列計算のソフトウェア開発・実行環境で CUDA Toolkit をインストールすることで使用できます。また、<span class="jinr-d--text-color d--marker1 d--bold">cuDNN (CUDA Deep Neural Network liberary)</span> は、CUDA Toolkit 上で動作するディープラーニングライブラリです。</p>



<p class="wp-block-paragraph">TensorFlow や PyTorch といったディープラーニングライブラリを用いたプログラミングを行いたいときに NVIDIA の GPU を使う場合には、CUDA Toolkit と cuDNN をインストールする必要があります。</p>



<p class="wp-block-paragraph">この記事では、<span class="jinr-d--text-color d--marker1 d--bold">CUDA Toolkit</span> と <span class="jinr-d--text-color d--marker1 d--bold">cuDNN</span> のインストール方法について紹介します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">CUDA Toolkitのインストール</h3>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">CUDA Toolkit</span> のインストール方法を紹介します。CUDA Toolkit はどのバージョンをインストールするか NVIDIA のドライバなどをもとに決める必要があるので、バージョンの確認方法を含めて説明します。</p>



<h4 class="wp-block-heading jinr-heading d--bold">バージョンの確認</h4>



<p class="wp-block-paragraph">CUDA Toolkit をインストールする場合には、使用している PC の NVIDIA GPU によってインストールする CUDA Toolkit のバージョンを選ぶ必要があります。具体的には、NVIDIA Driver と CUDA Toolkit のバージョンの対応があうものを選びます。</p>



<p class="wp-block-paragraph">CUDA リリースノートの <a href="https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#id5" target="_blank" rel="noreferrer noopener">CUDA Toolkit and Corresponding Driver Versions</a> にCUDA Toolkit と Driver のバージョンに関する対応表があります。この表を参考にして、どの CUDA Toolkit が必要か調べます。</p>



<p class="wp-block-paragraph">「>=」という表現は、その数値以上のドライババージョンが必要ということです。例えば、CUDA 12.2 GA を使う場合には、Windows では 536.25 以上の Driver バージョンが必要ということです。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="447" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-5-1024x447.png" alt="" class="wp-image-8425" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-5-1024x447.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-5-300x131.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-5-768x335.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-5.png 1058w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">今回 CUDA をインストールしようとしている環境については以下の通りです。<br>(記事執筆時点)</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--simple-box1  "><div class="c--simple-box-inner">
<ul class="wp-block-list jinr-list">
<li>OS：Windows 10 Pro</li>



<li>CPU：Intel(R) Core(TM) i9-9900K CPU</li>



<li>メモリ：32GB</li>



<li>GPU：NVIDIA GeForce RTX 2080 Ti (専用GPUメモリ 11GB)</li>
</ul>
</div></div></section>



<p class="wp-block-paragraph">NVIDIA Driver のバージョンを確認するには、Windows の[設定] &#8211; [アプリ] からアプリと機能を &#8220;NVIDIA&#8221; で検索し「NVIDIA グラフィックドライバー」の数字を確認します。このバージョンの数値を <a href="https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#id5" target="_blank" rel="noreferrer noopener">CUDA Toolkit and Corresponding Driver Versions</a> と照らし合わせて CUDA Toolkit を選択してください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="541" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-1-1024x541.png" alt="NVIDIA Driverの確認" class="wp-image-8421" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-1-1024x541.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-1-300x159.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-1-768x406.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-1.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="768" height="347" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-2.png" alt="NVIDIA Driverの確認" class="wp-image-8422" style="width:576px;height:260px" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-2.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-2-300x136.png 300w" sizes="(max-width: 768px) 100vw, 768px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="740" height="109" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-3.png" alt="NVIDIA Driverの確認" class="wp-image-8423" style="width:555px;height:82px" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-3.png 740w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-3-300x44.png 300w" sizes="(max-width: 740px) 100vw, 740px" /></figure>
</div>


<p class="wp-block-paragraph">使用するディープラーニングライブラリ（PyTorch や TensorFlow 等）の対応状況も確認が必要です。</p>



<p class="wp-block-paragraph">例えば、今回は PyTorch 2.0.1 を使用することを前提として PyTorch のページを調べてみます。最新バージョンは<a href="https://pytorch.org/get-started/locally/#start-locally" target="_blank" rel="noreferrer noopener">こちら</a>を、過去バージョンは<a href="https://pytorch.org/get-started/previous-versions/" target="_blank" rel="noreferrer noopener">こちら</a>のページを参考にしてください。以下は記事執筆時点で最新のページを確認した際のキャプチャです。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="863" height="636" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34.png" alt="Pytorch 2.0.1 CUDA11.8" class="wp-image-8507" style="width:680px;height:auto" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34.png 863w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34-300x221.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34-768x566.png 768w" sizes="(max-width: 863px) 100vw, 863px" /></figure>
</div>


<p class="wp-block-paragraph">上記の表を見ればわかるように CUDA 11.7 や CUDA11.8 に対応しているようです。今回の環境のドライバでは 11.7、11.8 いずれも要件を満たしていましたので、今回は CUDA 11.8 をインストールしてみたいと思います。</p>



<h4 class="wp-block-heading jinr-heading d--bold">CUDA のダウンロードとインストール</h4>



<p class="wp-block-paragraph">CUDA については <a href="https://developer.nvidia.com/cuda-toolkit-archive" target="_blank" rel="noreferrer noopener">CUDA Toolkit Archive</a> のページから指定バージョンのダウンロードページへ遷移してダウンロードします。インストールしたいバージョンをクリックしてください。この記事では 11.8.0 をクリックした場合で説明していきます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="487" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-6-1024x487.png" alt="CUDA Toolkit Archive" class="wp-image-8426" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-6-1024x487.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-6-300x143.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-6-768x366.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-6.png 1353w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">ダウンロードページでは、Windows 等の条件のボタンを押していくとダウンロードボタンが表示されます。local を選択すると数 GB のインストーラーをダウンロードすることになりますが、network を選択するとインストーラ自体は数 MB の小さなファイルとなり、実行時にダウンロードしつつインストールができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="676" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-35-1024x676.png" alt="CUDA 11.8.0 ダウンロード" class="wp-image-8509" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-35-1024x676.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-35-300x198.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-35-768x507.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-35.png 1346w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">インストールしたインストーラをダブルクリックしてインストールを実行します。インストール用の一時フォルダの指定がありますが特にこだわりがなければそのまま「OK」をクリックしてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="638" height="281" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-8.png" alt="CUDA インストール" class="wp-image-8430" style="width:479px;height:211px" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-8.png 638w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-8-300x132.png 300w" sizes="(max-width: 638px) 100vw, 638px" /></figure>
</div>


<p class="wp-block-paragraph">まずは、システムの互換性チェックが実行されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="592" height="441" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-36.png" alt="CUDA 11.8 インストール" class="wp-image-8510" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-36.png 592w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-36-300x223.png 300w" sizes="(max-width: 592px) 100vw, 592px" /></figure>
</div>


<p class="wp-block-paragraph">NVIDIA のソフトウェア使用許諾が表示されるので確認して「同意して続行する」をクリックしてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="591" height="441" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-37.png" alt="CUDA 11.8 インストール" class="wp-image-8511" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-37.png 591w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-37-300x224.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></figure>
</div>


<p class="wp-block-paragraph">インストールオプションについては特に細かな設定が必要でなければ「高速(推奨)」を選択すれば問題ありません。次へをクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="591" height="442" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-39.png" alt="CUDA 11.8 インストール" class="wp-image-8513" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-39.png 591w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-39-300x224.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></figure>
</div>


<p class="wp-block-paragraph">Visual Studio がインストールされていない場合、以下の画面が表示されるかと思います。Visual Studio で開発しない場合は不要ですので、チェックを入れて NEXT をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="589" height="441" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-41.png" alt="CUDA 11.8 インストール" class="wp-image-8515" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-41.png 589w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-41-300x225.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></figure>
</div>


<p class="wp-block-paragraph">インストールの準備が始まります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="591" height="441" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-42.png" alt="CUDA 11.8 インストール" class="wp-image-8516" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-42.png 591w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-42-300x224.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></figure>
</div>


<p class="wp-block-paragraph">インストールパッケージのダウンロードと処理が始まります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="589" height="442" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-43.png" alt="CUDA 11.8 インストール" class="wp-image-8517" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-43.png 589w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-43-300x225.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="591" height="437" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-44.png" alt="CUDA 11.8 インストール" class="wp-image-8518" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-44.png 591w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-44-300x222.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></figure>
</div>


<p class="wp-block-paragraph">インストールが開始されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="591" height="440" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-45.png" alt="CUDA 11.8 インストール" class="wp-image-8519" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-45.png 591w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-45-300x223.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></figure>
</div>


<p class="wp-block-paragraph">以下のページが出たら、次へをクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="591" height="442" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-46.png" alt="CUDA 11.8 インストール" class="wp-image-8520" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-46.png 591w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-46-300x224.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></figure>
</div>


<p class="wp-block-paragraph">インストールは完了です。チェックは任意で選択して閉じるをクリックしてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="592" height="441" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-47.png" alt="CUDA 11.8 インストール" class="wp-image-8521" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-47.png 592w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-47-300x223.png 300w" sizes="(max-width: 592px) 100vw, 592px" /></figure>
</div>


<p class="wp-block-paragraph">CUDA のインストールの確認をするために、コマンドプロンプトで以下を実行してください。以下のようにバージョン情報が表示されればインストール完了です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0</pre>



<h3 class="wp-block-heading jinr-heading d--bold">cuDNN のインストール</h3>



<p class="wp-block-paragraph">ディープラーニングライブラリである <span class="jinr-d--text-color d--marker1 d--bold">cuDNN</span> のインストール方法を紹介します。cuDNN は CUDA との対応をよく確認してインストールする必要があるので、バージョンの確認方法を含めて説明していきます。</p>



<h4 class="wp-block-heading jinr-heading d--bold">バージョンの確認</h4>



<p class="wp-block-paragraph">cuDNN と CUDA との対応は <a href="https://docs.nvidia.com/deeplearning/cudnn/backend/latest/reference/support-matrix.html" target="_blank" rel="noreferrer noopener">GPU, CUDA Toolkit, and CUDA Driver Requirements</a> の対応表を確認します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="537" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-20-1024x537.png" alt="GPU, CUDA Toolkit, and CUDA Driver Requirements 対応表" class="wp-image-8445" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-20-1024x537.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-20-300x157.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-20-768x403.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-20.png 1243w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">今回インストールした CUDA 11.8 の場合は「cuDNN 8.9.3 for CUDA 11.x」が適切であることが分かります。(記事執筆時点)</p>



<h4 class="wp-block-heading jinr-heading d--bold">cuDNN のダウンロードとインストール</h4>



<p class="wp-block-paragraph">cuDNN は<a href="https://developer.nvidia.com/cudnn" target="_blank" rel="noreferrer noopener">こちら</a>のページから「Download cuDNN」でダウンロードします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="330" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-21-1024x330.png" alt="cuDNN ダウンロード" class="wp-image-8447" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-21-1024x330.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-21-300x97.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-21-768x247.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-21.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">cuDNN はダウンロードするために NVIDIA のアカウント登録が必要なので、持っていない人はアカウント登録してください。以下のページで Windows 用の ZIP ファイルをダウンロードします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="382" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-22-1024x382.png" alt="cuDNN ダウンロード" class="wp-image-8448" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-22-1024x382.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-22-300x112.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-22-768x287.png 768w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-22.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">ダウンロードした zip を展開すると bin 等のフォルダがあるので CUDA フォルダの配下に配置します。私の場合は以下のフォルダを作ってファイルを配置しました。</p>



<p class="wp-block-paragraph"><code>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\cudnn</code></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="435" height="173" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-48.png" alt="cuDNN 8.9.3 for CUDA 11.x インストール" class="wp-image-8522" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-48.png 435w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-48-300x119.png 300w" sizes="(max-width: 435px) 100vw, 435px" /></figure>
</div>


<p class="wp-block-paragraph">次に cuDNN のライブラリフォルダに環境変数のパスを通します。システムのプロパティから環境変数を開き Path に以下のような CUDA 関連のパスを設定します。</p>



<p class="wp-block-paragraph">（機械学習のプログラミングをしていて CUDA や cuDNN 関連でうまくプログラムが実行できない場合は、環境変数を確認してみると解決する可能性があります）</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="714" height="147" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-50.png" alt="cuDNN 8.9.3 for CUDA 11.x インストール 環境変数" class="wp-image-8524" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-50.png 714w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-50-300x62.png 300w" sizes="(max-width: 714px) 100vw, 714px" /></figure>
</div>


<p class="wp-block-paragraph">以下コマンドで場所が確認できれば問題ないかと思います。<br>※ dll のファイル名は cuDNN のバージョンにより異なるかもしれませんので、正確には bin フォルダ配下の dll ファイル名を確認してから実行してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">where cudnn64_8.dll</pre>



<figure class="wp-block-image size-full"><img decoding="async" width="763" height="106" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-51.png" alt="cuDNN 8.9.3 for CUDA 11.x インストール 環境変数" class="wp-image-8525" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-51.png 763w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-51-300x42.png 300w" sizes="(max-width: 763px) 100vw, 763px" /></figure>



<p class="wp-block-paragraph">以上で cuDNN のインストールは完了です。</p>



<h3 class="wp-block-heading jinr-heading d--bold">GPU の認識を確認（PyTorch）</h3>



<p class="wp-block-paragraph">今回は Pytorch 2.0.1 を想定しつつ CUDA のインストールを試したので PyTorch での GPU の認識を確認してみます。任意の Python プロジェクトを作成して以下のコマンドで Pytorch をインストールします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118</pre>



<p class="wp-block-paragraph">上記は、記事前半で確認した<a href="https://pytorch.org/get-started/locally/#start-locally" target="_blank" rel="noreferrer noopener">こちら</a>のバージョンページにて「Run this Command:」で指定されているインストールコマンドです。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="863" height="636" src="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34.png" alt="Pytorch 2.0.1 CUDA11.8" class="wp-image-8507" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34.png 863w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34-300x221.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/07/image-34-768x566.png 768w" sizes="(max-width: 863px) 100vw, 863px" /></figure>
</div>


<p class="wp-block-paragraph">インストール後に pip list で確認してみると Pytorch (= torch) としては「2.0.1+cu118」がインストールできていることが確認できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">>pip list
Package            Version
------------------ ------------
certifi            2022.12.7
charset-normalizer 2.1.1
filelock           3.9.0
idna               3.4
Jinja2             3.1.2
MarkupSafe         2.1.2
mpmath             1.2.1
networkx           3.0
numpy              1.24.1
Pillow             9.3.0
pip                23.2.1
requests           2.28.1
setuptools         68.0.0
sympy              1.11.1
torch              2.0.1+cu118
torchaudio         2.0.2+cu118
torchvision        0.15.2+cu118
typing_extensions  4.4.0
urllib3            1.26.13</pre>



<p class="wp-block-paragraph">Pytorch 環境をインストールできたら以下の簡単なプログラムを作成して実行することで GPU の認識を確認します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import torch

# GPUの認識を確認する
print(torch.cuda.is_available(), "\n")

# PyTorchで使用できるGPU(デバイス)の数やデフォルトのGPU番号を確認
print(torch.cuda.device_count())
print(torch.cuda.current_device(), "\n")

# GPUデバイス名を確認する
print(torch.cuda.get_device_name())</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
True 

1
0 

NVIDIA GeForce RTX 2080 Ti</pre>



<p class="wp-block-paragraph"><code>is_available</code> の実行結果として「<code>True</code>」が返ってきているので Pytorch が GPU を認識できています。また、各種メソッドを使うことでデバイスの情報が取得できていることが分かります。</p>



<p class="wp-block-paragraph"><code>is_available</code> の結果が <code>False</code> の場合はうまく GPU を認識できていませんので GPU ドライバーや CUDA のバージョンなどを再度確認してみてください。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">NVIDIAのGPUを使った並列計算のための環境である <span class="jinr-d--text-color d--marker1 d--bold">CUDA</span> や関連するライブラリの <span class="jinr-d--text-color d--marker1 d--bold">cuDNN</span> をインストールする方法について解説しました。</p>



<p class="wp-block-paragraph">CUDA と cuDNN は、どのバージョンをインストールするかで悩むと思います。また、プログラミング時にうまく動かないということもよくあります。私も最初はうまく動かせないことがありましたが、関係性を理解できると解決しやすくなります。</p>



<p class="wp-block-paragraph">この記事を参考にしていただいて、使用している GPU やライブラリにあったディープラーニング実行環境を構築してもらえるといいかなと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/cuda-cudnn-install-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PyCharmでコード保存時に自動フォーマットする方法 ~ black, isort~</title>
		<link>https://tech.nkhn37.net/pycharm-autoformat-black-isort/</link>
					<comments>https://tech.nkhn37.net/pycharm-autoformat-black-isort/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 11 Feb 2023 20:00:00 +0000</pubDate>
				<category><![CDATA[PyCharm]]></category>
		<category><![CDATA[Autopep8]]></category>
		<category><![CDATA[black]]></category>
		<category><![CDATA[isort]]></category>
		<category><![CDATA[yapf]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=7169</guid>

					<description><![CDATA[PyCharmでのプログラム開発時でコード保存時に自動フォーマットする方法について解説します。具体的には、blackとisortを自動適用する方法を紹介します。 Pythonのフォーマットツール Pythonでプログラミ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">PyCharmでのプログラム開発時でコード保存時に自動フォーマットする方法について解説します。具体的には、<span class="marker"><strong>black</strong></span>と<span class="marker"><strong>isort</strong></span>を自動適用する方法を紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Pythonのフォーマットツール</h2>



<p class="wp-block-paragraph">Pythonでプログラミングをしている際にコードの整形をサポートしてくれるツールがいくつかあります。</p>



<p class="wp-block-paragraph">例えばAutopep8、black、yapfといったものがありますが、最近では<span class="marker"><strong>black</strong></span>がデファクトスタンダートになっているようです。また、blackは、import文のソート順整理や重複削除について実行してくれませんので<span class="marker"><strong>isort</strong></span>と併用すると便利です。</p>



<p class="wp-block-paragraph">本記事では、Pythonの統合開発環境であるPyCharmにてコードを保存する際に、<span class="marker"><strong>black</strong></span>と<span class="marker"><strong>isort</strong></span>によるフォーマットをするための設定方法について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Pycharmにおけるコード保存時の自動フォーマット設定</h2>



<h3 class="wp-block-heading jinr-heading d--bold">blackとisortのインストール</h3>



<p class="wp-block-paragraph">blackとisortがまだインストールがされていない人は以下のコマンドでインストールしてください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install black</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install isort</pre>



<h3 class="wp-block-heading jinr-heading d--bold">Pycharmへのファイル監視プラグインのインストール</h3>



<p class="wp-block-paragraph">コード保存時の自動フォーマットをするためには、PyCharmのファイル監視プラグインである「<span class="marker"><strong>File Watchers</strong></span>」が必要です。</p>



<p class="wp-block-paragraph">PyCharmを開いた際の左側にある「プラグイン」で、Marketplaceの検索窓に&#8221;File Watchers&#8221;と入れてみてください。このプラグインはデフォルトで入るのだったか忘れてしまったのですが、インストール済みになっていればファイル監視プラグインはインストールされています。</p>



<p class="wp-block-paragraph">インストールされていないようであれば、インストールを実行して、PyCharmを再起動してください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="946" height="596" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-27.png" alt="PyCharm ファイル監視プラグイン File Watchers" class="wp-image-7171" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-27.png 946w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-27-300x189.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-27-768x484.png 768w" sizes="(max-width: 946px) 100vw, 946px" /></figure>
</div>


<h3 class="wp-block-heading jinr-heading d--bold">PyCharmでのファイル監視プラグイン設定</h3>



<p class="wp-block-paragraph">ファイル監視プラグインがインストールされていると、PyCharmで[ファイル]-[設定]のツール配下に「File Watchers」という項目があります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="969" height="713" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-28.png" alt="ファイル監視プラグイン File Watchers" class="wp-image-7173" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-28.png 969w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-28-300x221.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-28-768x565.png 768w" sizes="(max-width: 969px) 100vw, 969px" /></figure>
</div>


<p class="wp-block-paragraph">ここにblackとisortの設定を適用します。以降で具体的な手順を見ていきましょう。</p>



<h4 class="wp-block-heading jinr-heading d--bold">blackの設定</h4>



<p class="wp-block-paragraph">blackを設定する場合には「+」のcustomを選択してください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="684" height="350" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-29.png" alt="File Watchers black 設定" class="wp-image-7174" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-29.png 684w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-29-300x154.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></figure>
</div>


<p class="wp-block-paragraph">以下の項目を設定していきます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="982" height="942" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-30.png" alt="File Watchers black 設定" class="wp-image-7175" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-30.png 982w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-30-300x288.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-30-768x737.png 768w" sizes="(max-width: 982px) 100vw, 982px" /></figure>
</div>


<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>値・設定内容</th></tr></thead><tbody><tr><td>名前</td><td>black</td></tr><tr><td>ファイルタイプ</td><td>Python</td></tr><tr><td>スコープ</td><td>現在のファイル</td></tr><tr><td>プログラム</td><td>\$PyInterpreterDirectory\$\black</td></tr><tr><td>引数</td><td>\$FilePath\$</td></tr><tr><td>編集したファイルを自動保存してウォッチャーをトリガーする</td><td>チェックを外す</td></tr><tr><td>外部の変更でウォッチャーをトリガーする</td><td>チェックを外す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">上記の設定では、現在のPythonファイルに対してblackによるフォーマットを実行します。</p>



<p class="wp-block-paragraph">[高度なオプション]の2項目は現在編集中のファイルが保存されたときだけblackを実行する用にチェックを外します。</p>



<p class="wp-block-paragraph">OKを押すと以下のようにファイル監視設定が作成されます。無効化したい時はチェックを外しましょう。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="689" height="172" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-31.png" alt="File Watchers black 設定" class="wp-image-7178" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-31.png 689w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-31-300x75.png 300w" sizes="(max-width: 689px) 100vw, 689px" /></figure>
</div>


<p class="wp-block-paragraph">上記の設定後にPythonファイルを保存してみましょう。blackによるコードフォーマットが実行されます。</p>



<h5 class="wp-block-heading jinr-heading d--bold">1行の文字数を変更したい場合</h5>



<p class="wp-block-paragraph">blackでは1行の文字数は88文字になっています。PEP8では79文字以内ということになっているため、自動整形したときに80文字以上になるとPycharmの設定によってはPEP8に合わない旨の警告が出るかもしれません。</p>



<p class="wp-block-paragraph">88文字である理由は、blackの開発者が88文字がよいという考えがあるからのようです。</p>



<p class="wp-block-paragraph">blackの設定をPEP8に揃えたい場合は、<span class="marker"><strong>.pyproject.toml</strong></span>というファイルをプロジェクト直下に作成して以下のような記述を追加してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[tool.black]
line-length = 79</pre>



<p class="wp-block-paragraph">上記のような設定の.pyproject.tomlを用意しておくと、blackの自動成型時に79文字以内になるように整形してくれるため、PEP8のチェックも問題なくなります。</p>



<p class="wp-block-paragraph">もちろん文字数は、プロジェクトの方針や個人の好みに合わせて変更していただければよいかと思います。</p>



<h4 class="wp-block-heading jinr-heading d--bold">isortの設定</h4>



<p class="wp-block-paragraph">blackの設定と同じくisortの設定もしていきましょう。File Watchersの設定で「+」のcustomを選択し、以下のように入力してください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="991" height="951" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-32.png" alt="File Watchers isort 設定" class="wp-image-7183" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-32.png 991w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-32-300x288.png 300w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-32-768x737.png 768w" sizes="(max-width: 991px) 100vw, 991px" /></figure>
</div>


<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>値・設定内容</th></tr></thead><tbody><tr><td>名前</td><td>isort</td></tr><tr><td>ファイルタイプ</td><td>Python</td></tr><tr><td>スコープ</td><td>現在のファイル</td></tr><tr><td>プログラム</td><td>\$PyInterpreterDirectory\$\isort</td></tr><tr><td>引数</td><td>\$FilePath\$</td></tr><tr><td>編集したファイルを自動保存してウォッチャーをトリガーする</td><td>チェックを外す</td></tr><tr><td>外部の変更でウォッチャーをトリガーする</td><td>チェックを外す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">上記の設定では、現在のPythonファイルに対してisortによるimport文の整形を実行します。</p>



<p class="wp-block-paragraph">[高度なオプション]の2項目は現在編集中のファイルが保存されたときだけisortを実行する用にチェックを外します。</p>



<p class="wp-block-paragraph">OKを押すと以下のようにファイル監視設定が作成されます。無効化したい時はチェックを外しましょう。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="675" height="159" src="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-33.png" alt="File Watchers isort 設定" class="wp-image-7184" srcset="https://tech.nkhn37.net/wp-content/uploads/2023/02/image-33.png 675w, https://tech.nkhn37.net/wp-content/uploads/2023/02/image-33-300x71.png 300w" sizes="(max-width: 675px) 100vw, 675px" /></figure>
</div>


<p class="wp-block-paragraph">上記の設定後にPythonファイルを保存してみましょう。isortによるimport文のソートが実行されます。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">PyCharmでのプログラム開発時でコード保存時に自動フォーマットする方法について解説しました。具体的には、<span class="marker"><strong>black</strong></span>と<span class="marker"><strong>isort</strong></span>を自動適用する方法を紹介しています。</p>



<p class="wp-block-paragraph">コード保存時の自動適用は、ファイルを監視するPyCharmのプラグイン「<span class="marker"><strong>File Watchers</strong></span>」にblackとisortの実行パラメータを設定することで実現できます。</p>



<p class="wp-block-paragraph">フォーマットツールをうまく使うとプログラマ間で品質の違いを小さくすることができますので、是非設定して使ってもらえるとよいかと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/pycharm-autoformat-black-isort/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VSCodeの「Python Docstring Generator」拡張機能でdocstringを自動生成する</title>
		<link>https://tech.nkhn37.net/vscode-python-docstring-generator/</link>
					<comments>https://tech.nkhn37.net/vscode-python-docstring-generator/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 12 Nov 2022 21:00:00 +0000</pubDate>
				<category><![CDATA[VS Code]]></category>
		<category><![CDATA[docstring]]></category>
		<category><![CDATA[Python Docstring Generator]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=5750</guid>

					<description><![CDATA[VSCodeでのPython開発でdocstringを自動生成してくれるPython Docstring Generatorについて紹介します。 Pythonにおけるdocstring Pythonでプログラミング開発を [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VSCodeでのPython開発でdocstringを自動生成してくれる<span class="marker"><strong>Python Docstring Generator</strong></span>について紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Pythonにおけるdocstring</h2>



<p class="wp-block-paragraph">Pythonでプログラミング開発をしている際に、関数やクラスなどの仕様を利用者に対して分かるようにすることが必要です。ダブルクオート(&#8220;)を３つ連続して並べた三重引用符で囲んで記載した文字列を<span class="marker"><strong>docstring</strong></span>と言います。</p>



<p class="wp-block-paragraph">例えば、docstringの例としては以下のような感じです。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">def sample_func(temp1: int, temp2: int) -> int:
    """2変数の加算結果を返却する

    Args:
        temp1 (int): 数値1
        temp2 (int): 数値2

    Returns:
        int: 加算結果
    """
    return temp1 + temp2</pre>



<p class="wp-block-paragraph">このdocstringについては、自分でゼロから書いてももちろんいいのですが、関数の定義をベースに自動で生成して、細部を埋めていく方がはるかに楽です。</p>



<p class="wp-block-paragraph">コードエディタであるVSCodeでは、拡張機能である「<span class="marker"><strong>Python Docstring Generator</strong></span>」を使用することで、docstringを自動生成することが可能になります。</p>



<p class="wp-block-paragraph">本記事では、Python Docstring Generatorをインストールや使い方、設定方法について紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorの使い方</h2>



<h3 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorのインストール</h3>



<p class="wp-block-paragraph"><span class="marker"><strong>Python Docstring Generator</strong></span>は、Python拡張機能としてインストールできます。以下の手順でPython拡張機能をインストールしてください。</p>



<ol class="wp-block-list jinr-list">
<li>拡張タブを選択する。</li>



<li>検索窓で「docstring」と入力する。</li>



<li>検索された「autoDocstring &#8211; &#8230;」をクリックすると右側にPython拡張の説明が表示される。</li>



<li>インストールをクリックしてPython拡張機能をインストールする。</li>
</ol>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="729" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-1024x729.png" alt="Python Docstring Generator" class="wp-image-5752" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-1024x729.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-300x214.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-768x547.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">上記のインストールを行うことでPython Docstring Generatorの機能が使用できるようになります。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorの使い方</h3>



<p class="wp-block-paragraph">Python Docstring Generatorの使い方は簡単です。</p>



<p class="wp-block-paragraph">開発しているPythonプログラムで関数を定義するときに、関数定義の下の行で以下のようにダブルクオート(&#8220;)を三つ入力すると「Generate Docstring」というように表示されるのでEnterを押します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="599" height="76" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-88.png" alt="Python Docstring Generator" class="wp-image-5753" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-88.png 599w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-88-300x38.png 300w" sizes="(max-width: 599px) 100vw, 599px" /></figure>
</div>


<p class="wp-block-paragraph">また、ダブルクオートを入力しなくても関数定義の下の行で「ctrl + shift + 2」とすることでも生成できますのでお好みの方法を利用してください。</p>



<p class="wp-block-paragraph">実行すると以下のようにdocstringが自動生成されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="589" height="212" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-90.png" alt="Python Docstring Generator" class="wp-image-5755" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-90.png 589w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-90-300x108.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></figure>
</div>


<p class="wp-block-paragraph">_summary_や_description_のところを以下のように自分で書き換えればdocstringが完成します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="623" height="219" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-91.png" alt="Python Docstring Generator" class="wp-image-5756" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-91.png 623w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-91-300x105.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>
</div>


<p class="wp-block-paragraph">docstringを記載しておくと、以下のように呼び出しもとで関数にマウスのカーソルを合わせる等するだけ以下のように、関数の概要を把握することも可能になります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="588" height="227" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-92.png" alt="Python Docstring Generator" class="wp-image-5757" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-92.png 588w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-92-300x116.png 300w" sizes="(max-width: 588px) 100vw, 588px" /></figure>
</div>


<h3 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorの設定</h3>



<p class="wp-block-paragraph">Python Docstring Generatorでは、「google」スタイルのフォーマットがデフォルト設定となっています。</p>



<p class="wp-block-paragraph">拡張機能のインストール一覧からPython Docstring Generatorの[歯車マーク]-[拡張機能の設定]をクリックすると設定を確認することができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="981" height="518" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93.png" alt="Python Docstring Generator 設定" class="wp-image-5758" style="width:491px;height:259px" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93.png 981w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93-300x158.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93-768x406.png 768w" sizes="(max-width: 981px) 100vw, 981px" /></figure>
</div>


<p class="wp-block-paragraph">以下のAuto Docstring: Docstring Formatの部分がフォーマットに関する設定になります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="147" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-1024x147.png" alt="Python Docstring Generator
Auto Docstring: Docstring Format" class="wp-image-5759" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-1024x147.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-300x43.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-768x110.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94.png 1180w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">プルダウンをクリックして見ると以下のように結構たくさんの種類がありますね。自分の好みやプロジェクトの方針により設定を変更して使用してください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="503" height="299" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-95.png" alt="Python Docstring Generator
Auto Docstring: Docstring Format" class="wp-image-5760" style="width:377px;height:224px" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-95.png 503w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-95-300x178.png 300w" sizes="(max-width: 503px) 100vw, 503px" /></figure>
</div>


<p class="wp-block-paragraph">どのスタイルを使うのがよいのかという話があるかと思います。numpyスタイルか、googleスタイルかといったあたりがよく話が上がるような気がしますが、プロジェクトとして一貫していればいずれのフォーマットでも問題ないかと思います。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">VSCodeでのPython開発でdocstringを自動生成してくれる<span class="marker"><strong>Python Docstring Generator</strong></span>について紹介しました。</p>



<p class="wp-block-paragraph">Python Docstring Generatorのインストール、基本的な使い方、スタイルの設定について説明しています。docstringの記載は関数等の説明を利用者やプロジェクトメンバに伝える意味でも、プログラミングにおいて重要なことであると思っています。</p>



<p class="wp-block-paragraph">ゼロから自分で書くのは少し面倒ですので、Python Docstring Generatorを活用して効率よく記載していってもらえるとよいかと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/vscode-python-docstring-generator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VSCodeでGitのrebaseを実施する方法</title>
		<link>https://tech.nkhn37.net/git-rebase-vscode-basic/</link>
					<comments>https://tech.nkhn37.net/git-rebase-vscode-basic/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 12 Nov 2022 20:00:00 +0000</pubDate>
				<category><![CDATA[VS Code]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitGraph]]></category>
		<category><![CDATA[GitLens]]></category>
		<category><![CDATA[rebase]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=5681</guid>

					<description><![CDATA[VSCodeでGitのrebaseを実施する方法について解説します。 Gitのrebase rebaseとは Gitは、プログラムソース等のバージョン管理ソフトウェアです。rebaseとは、Gitで提供されるコマンドの一 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><span class="marker"><strong>VSCodeでGitのrebaseを実施する方法</strong></span>について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Gitのrebase</h2>



<h3 class="wp-block-heading jinr-heading d--bold">rebaseとは</h3>



<p class="wp-block-paragraph">Gitは、プログラムソース等のバージョン管理ソフトウェアです。<span class="marker"><strong>rebase</strong></span>とは、Gitで提供されるコマンドの一種です。</p>



<p class="wp-block-paragraph">似たコマンドとして開発ブランチをまとめるmergeというコマンドがありますが、こちらは感覚的にも理解しやすいのに対して、このrebaseというコマンドは取り扱いが少し難しいコマンドです。</p>



<p class="wp-block-paragraph">rebaseコマンドを一言で表すと「コミットをつなげなおしたり、ひとまとめにしたり、コミットメッセージを修正したりして、ログを綺麗にする」コマンドです。</p>



<p class="wp-block-paragraph">本記事では、コードエディタのVSCodeを使いつつ、rebaseコマンドを実行して使う方法について、いくつかの主要な使い方に絞って図を用いながら紹介していきます。</p>



<h2 class="wp-block-heading jinr-heading d--bold">VSCodeを用いてGitのrebaseを実行する方法</h2>



<p class="wp-block-paragraph">ここからは、コードエディタである<span class="marker"><strong>VSCodeを使ってGitのrebaseを実行する方法</strong></span>を紹介します。</p>



<p class="wp-block-paragraph">前提として、VSCodeの拡張機能である<span class="marker"><strong>GitLens</strong></span>と<span class="marker"><strong>GitGraph</strong></span>を使用しています。VSCodeの拡張機能としてインストールしておいてください。インストール方法が分からない方は、本記事内に<a href="https://tech.nkhn37.net/?p=5681&amp;preview=true#Git">こちら</a>にインストール方法の参考を設けていますので、確認してインストールしてください。</p>



<h3 class="wp-block-heading jinr-heading d--bold">rebaseでのよくある主要な使い方</h3>



<p class="wp-block-paragraph">rebaseはいくつかの使用ケースが考えられるかと思いますが、よくある主要な使い方だと思われる以下の３種類の方法について、概要図なども交えて紹介していきます。</p>



<ol class="wp-block-list jinr-list">
<li>開発コミットをつなげなおす</li>



<li>複数コミットを一つにまとめる</li>



<li>コミットメッセージを修正する</li>
</ol>



<h4 class="wp-block-heading jinr-heading d--bold">開発コミットをつなげなおす</h4>



<p class="wp-block-paragraph">一つ目の例として、開発コミットをつなげなおす例を紹介します。具体的には、以下の図でブランチAとブランチBのように複数のブランチで開発コミットしていた時に、ブランチAの後ろにブランチBをつなげなおすことを考えてみたいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="981" height="772" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-86.png" alt="rebase 開発コミットをつなげなおす" class="wp-image-5746" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-86.png 981w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-86-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-86-768x604.png 768w" sizes="(max-width: 981px) 100vw, 981px" /></figure>



<p class="wp-block-paragraph">上記の例は、startの位置でブランチAとブランチBが作成されてそれぞれで開発を進めた場合を示しています。</p>



<p class="wp-block-paragraph">では、具体的にVSCode上でどのような手順を実施するか見ていきましょう。以下が実際に上記のような状況でのGitGraphのコミットグラフです。このコミットグラフの状態からブランチAの後ろにブランチBをつなげる手順を見ていきましょう。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="290" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-64-1024x290.png" alt="rebase 開発コミットをつなげなおす" class="wp-image-5708" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-64-1024x290.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-64-300x85.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-64-768x218.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-64.png 1097w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">まず、ブランチBがチェックアウトされている状態で、ベースとなるブランチA上で右クリックし、「Rebase current branch on this commit&#8230;」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="365" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-67-1024x365.png" alt="rebase 開発コミットをつなげなおす" class="wp-image-5711" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-67-1024x365.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-67-300x107.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-67-768x274.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-67.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">以下のようなダイアログが出るので、「Launch Interactive Rebase in new Terminal」にチェックを入れて「Yes, rebase」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="934" height="231" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-68.png" alt="rebase 開発コミットをつなげなおす" class="wp-image-5712" style="width:467px;height:116px" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-68.png 934w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-68-300x74.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-68-768x190.png 768w" sizes="(max-width: 934px) 100vw, 934px" /></figure>
</div>


<p class="wp-block-paragraph">すると以下のようなGitLens Interactive Rebase画面が表示されます。各行がコミットを表していてプルダウンでいくつかの処理が選べます。「pick」は何もせずそのまま使うという意味で、今回はコミット自体には変更等加えずに、つなぎ変えるだけですのでpickを選んだ状態で「START REBASE」をクリックします。もしくは「Ctrl + Enter」でも実行できます。なお、処理をやめたいときは「ABORT」をクリックしてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="1000" height="566" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-70.png" alt="rebase 開発コミットをつなげなおす" class="wp-image-5714" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-70.png 1000w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-70-300x170.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-70-768x435.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-70-320x180.png 320w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>
</div>


<p class="wp-block-paragraph">Rebaseを実行するとVSCodeのターミナルで以下のような表示がされます。「git rebase」というのがコマンドが実行されて、成功していることが分かります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git rebase --interactive c219f6ef4154eb71753828a641795630a38384e2

Successfully rebased and updated refs/heads/branch-B.</pre>



<p class="wp-block-paragraph">GitGraph上で更新ボタンを押すとグラフが更新されます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="572" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-85-1024x572.png" alt="rebase 開発コミットをつなげなおす" class="wp-image-5743" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-85-1024x572.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-85-300x167.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-85-768x429.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-85-320x180.png 320w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-85.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">上記のように、Aの後ろにつなぎなおされて一直線のきれいなコミットグラフになったことが分かります。</p>



<h4 class="wp-block-heading jinr-heading d--bold">複数コミットを一つにまとめる</h4>



<p class="wp-block-paragraph">次に、複数コミットを一つにまとめる例を紹介します。コミットは開発にそって適宜実施していくわけですが、後から見ると複数のコミットをひとまとめのコミットにしておいた方が変更内容が理解しやすく、すっきりとするような場合がよくあります。</p>



<p class="wp-block-paragraph">このような際には、rebaseを使って以下の図のようなイメージで複数コミットを一つにまとめることができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="370" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-62-1024x370.png" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5704" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-62-1024x370.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-62-300x108.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-62-768x277.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-62.png 1260w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">上記は、もともとa~dまであったコミットをまとめてeという一つのコミットにまとめているような例を示しています。</p>



<p class="wp-block-paragraph">では、具体的にVSCode上でどのような手順を実施するか見ていきましょう。以下が実際に上記のような状況でのGitGraphのコミットグラフです。このコミットグラフで、ファイル作成～変更1, 2, 3のコミットを一つにまとめてみましょう。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="287" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-72-1024x287.png" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5717" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-72-1024x287.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-72-300x84.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-72-768x215.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-72.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">まず、ブランチAがチェックアウトされている状態で、変更したい範囲の一つ前のコミットを右クリックし、「Rebase current branch on this commit&#8230;」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="393" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-73-1024x393.png" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5718" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-73-1024x393.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-73-300x115.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-73-768x294.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-73.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">以下のようなダイアログが出るので、「Launch Interactive Rebase in new Terminal」にチェックを入れて「Yes, rebase」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="931" height="235" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-74.png" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5719" style="width:466px;height:118px" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-74.png 931w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-74-300x76.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-74-768x194.png 768w" sizes="(max-width: 931px) 100vw, 931px" /></figure>
</div>


<p class="wp-block-paragraph">すると以下のようなGitLens Interactive Rebase画面が表示されます。各行がコミットを表していてプルダウンでいくつかの処理が選べます。今回は、コミットを統合するので統合するコミットを「squash」に変更して、「START REBASE」をクリックします。もしくは「Ctrl + Enter」でも実行できます。なお、処理をやめたいときは「ABORT」をクリックしてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="640" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-75-1024x640.png" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5720" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-75-1024x640.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-75-300x188.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-75-768x480.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-75.png 1102w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">すると、GITで設定されているエディタが起動し以下のような画面になります。この例ではVSCodeが起動している例です。この画面ではコミットメッセージの変更をすることができ、#から始まる行はコミットメッセージとしては無視されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="671" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1024x671.jpg" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5721" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1024x671.jpg 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-300x197.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-768x503.jpg 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">今回は、一つにコミットをまとめたメッセージにしたいので以下のように変更して保存し、「×」で閉じると処理が継続します。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="531" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1-1024x531.jpg" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5722" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1-1024x531.jpg 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1-300x155.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1-768x398.jpg 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Rebaseを実行するとVSCodeのターミナルで以下のような表示がされます。「git rebase」というのがコマンドが実行されて、成功していることが分かります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git rebase --interactive 8f9c37b185f75ae5944cc05ea607290e3b93b14f

[detached HEAD 1e405dd] branch-A: ファイル作成&amp;変更
 Date: Sun Nov 13 09:43:39 2022 +0900
 1 file changed, 3 insertions(+)
 create mode 100644 testA.py
Successfully rebased and updated refs/heads/branch-A.</pre>



<p class="wp-block-paragraph">GitGraph上で更新ボタンを押すとグラフが更新されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="508" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1024x508.png" alt="rebase 複数コミットを一つにまとめる" class="wp-image-5723" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-1024x508.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-300x149.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76-768x381.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-76.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">上記のように、複数あったコミットが一つのコミットにまとめられていることが分かるかと思います。</p>



<h4 class="wp-block-heading jinr-heading d--bold">コミットメッセージを修正する</h4>



<p class="wp-block-paragraph">Gitでコミットをしていると、たまにコミットメッセージを間違えたり、書くべき事項が足りなかったりといったケースがよく発生します。</p>



<p class="wp-block-paragraph">このような際には、rebaseを使って以下の図のようなイメージでコミットメッセージを修正することができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="391" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-77-1024x391.png" alt="rebase コミットメッセージを修正する" class="wp-image-5724" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-77-1024x391.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-77-300x114.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-77-768x293.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-77.png 1201w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">上記の例は、cの部分のコミットメッセージで変換ミスをしてしまった場合を示しています。</p>



<p class="wp-block-paragraph">では、具体的にVSCode上でどのような手順を実施するか見ていきましょう。以下が実際に上記のような状況でのGitGraphのコミットグラフです。このコミットグラフの状態からコミットメッセージを修正する手順を見ていきましょう。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="288" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-78-1024x288.png" alt="rebase コミットメッセージを修正する" class="wp-image-5725" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-78-1024x288.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-78-300x84.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-78-768x216.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-78.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">まず、ブランチAがチェックアウトされている状態で、変更したい範囲よりも前のコミットを右クリックし、「Rebase current branch on this commit&#8230;」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="407" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-79-1024x407.png" alt="rebase コミットメッセージを修正する" class="wp-image-5726" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-79-1024x407.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-79-300x119.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-79-768x305.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-79.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">以下のようなダイアログが出るので、「Launch Interactive Rebase in new Terminal」にチェックを入れて「Yes, rebase」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="927" height="239" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-80.png" alt="rebase コミットメッセージを修正する" class="wp-image-5727" style="width:464px;height:120px" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-80.png 927w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-80-300x77.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-80-768x198.png 768w" sizes="(max-width: 927px) 100vw, 927px" /></figure>
</div>


<p class="wp-block-paragraph">すると以下のようなGitLens Interactive Rebase画面が表示されます。各行がコミットを表していてプルダウンでいくつかの処理が選べます。今回は、コミットメッセージを修正する対象のコミットを「reword」に変更して、「START REBASE」をクリックします。もしくは「Ctrl + Enter」でも実行できます。なお、処理をやめたいときは「ABORT」をクリックしてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="669" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-81-1024x669.png" alt="rebase コミットメッセージを修正する" class="wp-image-5728" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-81-1024x669.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-81-300x196.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-81-768x501.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-81.png 1092w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">すると、GITで設定されているエディタが起動し以下のような画面になります。この例ではVSCodeが起動している例です。この画面ではコミットメッセージの変更をすることができ、#から始まる行はコミットメッセージとしては無視されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="540" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-1024x540.jpg" alt="rebase コミットメッセージを修正する" class="wp-image-5729" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-1024x540.jpg 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-300x158.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-768x405.jpg 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">今回は、rewordに設定したコミットメッセージが表示されます。コミットメッセージを修正して保存し、「×」で閉じると処理が継続します。今回の例ではrewordに設定したのが一つのコミットでしたが、複数の場合は順次同様に変更します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="553" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-1-1024x553.jpg" alt="rebase コミットメッセージを修正する" class="wp-image-5730" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-1-1024x553.jpg 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-1-300x162.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-1-768x415.jpg 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-82-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">Rebaseを実行するとVSCodeのターミナルで以下のような表示がされます。「git rebase」というのがコマンドが実行されて、成功していることが分かります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git rebase --interactive 6291c81b14f50c98978dbe4287cfc8571148644f

[detached HEAD 6755a18] branch-A: ファイル変更2
 Date: Sun Nov 13 10:47:00 2022 +0900
 1 file changed, 1 insertion(+)
Successfully rebased and updated refs/heads/branch-A.</pre>



<p class="wp-block-paragraph">GitGraph上で更新ボタンを押すとグラフが更新されます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="572" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-84-1024x572.png" alt="rebase コミットメッセージを修正する" class="wp-image-5742" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-84-1024x572.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-84-300x167.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-84-768x429.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-84-320x180.png 320w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-84.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">上記のように、誤っていたコミットメッセージが修正されたことが分かるかと思います。</p>



<h3 class="wp-block-heading jinr-heading d--bold">rebaseのその他の処理</h3>



<p class="wp-block-paragraph">rebaseで上記でも使用してきたpick、squash、reword等がありますが、他にもありますので表でまとめておこうと思います。今回は主要な処理に絞ってということで一部しか紹介しませんでした。必要に応じて各処理の方法を調べてもらえるとよいかと思います。</p>



<figure class="wp-block-table"><table><thead><tr><th>処理</th><th>内容</th></tr></thead><tbody><tr><td>pick</td><td>何もしないで選択する</td></tr><tr><td>reword</td><td>コミットメッセージをまとめて変更する</td></tr><tr><td>edit</td><td>過去のコミットを修正する（該当箇所でrebaseを一時停止する）</td></tr><tr><td>squash</td><td>過去のコミットを統合する（コミットメッセージを変更する場合）</td></tr><tr><td>fixup</td><td>過去のコミットを統合する（コミットメッセージの変更が不要な場合）</td></tr><tr><td>drop</td><td>過去のコミットを削除する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading jinr-heading d--bold">mergeとrebaseの使い分け</h3>



<p class="wp-block-paragraph">mergeコマンドとrebaseコマンドの大きな違いは、「<span class="marker"><strong>既存のコミットに影響を与えるか否か</strong></span>」という点です。mergeコマンドを使うと、merge commitとして新しいコミットを作成するので既存のコミットに影響を与えることはありません。</p>



<p class="wp-block-paragraph">そのため、複数の開発メンバーにて、共同開発をしている環境で安易にrebaseしてしまうと他の人のコミットを勝手に作り直してしまうというようなことが発生してしまう可能性もあります。</p>



<p class="wp-block-paragraph">そのため、まだリモートリポジトリにpushしていない段階のローカルリポジトリ内でコミットの内容を修正するのにはrebaseを使うようにするとよいと思います。一方で、pushした後で他の人も見ている・ソースを修正しているような場合については、mergeを使用するようにしましょう。共同開発環境ではpull requestを通じて検証をしつつmergeするというのが一般的かと思います。</p>



<h2 class="wp-block-heading jinr-heading d--bold">【参考】Git拡張機能のインストール</h2>



<h3 class="wp-block-heading jinr-heading d--bold">GitGraphのインストール</h3>



<p class="wp-block-paragraph"><span class="marker"><strong>GitGraph</strong></span>は、Gitのコミットグラフをきれいに表示するためのVSCode拡張です。以下のように拡張タブからインストールしてください。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="655" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-56-1024x655.png" alt="GitGraph" class="wp-image-5685" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-56-1024x655.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-56-300x192.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-56-768x492.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-56.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">インストールすると、ソース管理タブのところから以下のボタンを押すことでGitGraphによるコミットグラフを表示することができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="229" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-57-1024x229.png" alt="GitGraph" class="wp-image-5686" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-57-1024x229.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-57-300x67.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-57-768x172.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-57.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h3 class="wp-block-heading jinr-heading d--bold">GitLensのインストール</h3>



<p class="wp-block-paragraph"><span class="marker"><strong>GitLens</strong></span>は、Gitの変更情報などをVSCode上で確認したりするのに非常に便利な拡張機能です。以下のように拡張タブからインストールしてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="695" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-58-1024x695.png" alt="GitLens" class="wp-image-5688" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-58-1024x695.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-58-300x203.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-58-768x521.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-58.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">GitLensを導入すると、ソースコード上にファイルの変更時刻や各行が最後に変更された際のコミットメッセージなどをソース上でも確認できるようになります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="535" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-1024x535.jpg" alt="GitLens" class="wp-image-5689" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-1024x535.jpg 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-300x157.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-768x401.jpg 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">他にもgitの変更情報を以下のようにコミットメッセージと並べて見たりなど、色々とGitのコミット情報を確認してプログラミングを進めるのに便利な機能が提供されています。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="440" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-1024x440.png" alt="GitLens" class="wp-image-5690" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-1024x440.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-300x129.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59-768x330.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-59.png 1400w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">今回の記事では、上記で紹介している例のように「GitLens Interactive Rebase」ということでrebaseのコマンドをGUIでできる機能を使用しています。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">VSCodeでGitのrebaseを実施する方法について解説しました。<span class="marker"><strong>rebase</strong></span>とは、Gitで提供されるコマンドの一種です。</p>



<p class="wp-block-paragraph">rebaseはいくつかの使用ケースが考えられるかと思いますが、よくある主要な使い方だと思われる以下の３種類の方法について、概要図なども交えて紹介しています。</p>



<ol class="wp-block-list jinr-list">
<li>開発コミットをつなげなおす</li>



<li>複数コミットを一つにまとめる</li>



<li>コミットメッセージを修正する</li>
</ol>



<p class="wp-block-paragraph">rebaseは、gitコマンドの中でも扱いが少し難しいものであると感じますが、コミットログを綺麗にする際にとても便利ですので、参考にしていただければと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/git-rebase-vscode-basic/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gitの.gitignoreのテンプレートを自動生成する方法</title>
		<link>https://tech.nkhn37.net/git-gitignore-template-generate/</link>
					<comments>https://tech.nkhn37.net/git-gitignore-template-generate/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 05 Nov 2022 20:00:00 +0000</pubDate>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[.gitignore]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[VSCode]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=5613</guid>

					<description><![CDATA[Gitでバージョン管理する際に管理対象外を指定する.gitignoreを自動生成する方法について紹介します。 .gitignoreとは バージョン管理ソフトウェアであるGitでは、バージョン管理対象外とするファイルを指定 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Gitでバージョン管理する際に管理対象外を指定する<span class="marker"><strong>.gitignoreを自動生成する方法</strong></span>について紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">.gitignoreとは</h2>



<p class="wp-block-paragraph">バージョン管理ソフトウェアであるGitでは、バージョン管理対象外とするファイルを指定することができます。この対象外のファイルを指定する特殊なファイルが「<span class="marker"><strong>.gitignore</strong></span>」ファイルです。</p>



<p class="wp-block-paragraph">.gitignoreは自分で書いてもよいのですが、プログラミング言語ごとに含めたくないファイルというのはおおむね決まっていてテンプレートも存在しています。GitHubの<a rel="noreferrer noopener" href="https://github.com/github/gitignore" target="_blank">こちら</a>にも様々な.gitignoreが公開されています。</p>



<p class="wp-block-paragraph">上記リンク先のファイルをコピペして作ってもいいのですが、自動で生成してくれる方が便利です。本記事では.gitignoreのテンプレートを自動で生成する方法について紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">.gitignoreのテンプレートで自動生成する方法</h2>



<p class="wp-block-paragraph">.gitignoreのテンプレートを自動で生成する方法として以下の２種類を紹介したいと思います。</p>



<ul class="wp-block-list jinr-list">
<li>GitHubでプロジェクトを作成する際に生成する</li>



<li>VSCodeの拡張機能で生成する</li>
</ul>



<h3 class="wp-block-heading jinr-heading d--bold">GitHubでプロジェクトを作成する際に生成する</h3>



<p class="wp-block-paragraph">GitHubでプロジェクトを生成する際には以下のような「Add .gitignore」という項目が存在し、プルダウンから各言語を選択することができます。以下の例ではPythonを選択した例になります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="659" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-1024x659.jpg" alt="" class="wp-image-5615" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-1024x659.jpg 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-300x193.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-768x494.jpg 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52.jpg 1144w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">上記の設定で「Create repository」によりリポジトリを作成すると以下のように.gitignoreファイルが自動で生成されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="688" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-1024x688.png" alt="" class="wp-image-5616" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-1024x688.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-300x202.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52-768x516.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-52.png 1060w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">GitHubでプロジェクトを作った後は、ローカルにクローンして開発を進めることができます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">VSCodeのgitignore拡張機能を使用して生成する</h3>



<p class="wp-block-paragraph">VSCodeをプログラム開発で使用している人であれば、「gitignore」という拡張機能を使用することで.gitignoreを生成することが可能です。</p>



<p class="wp-block-paragraph">gitignore拡張機能は以下の手順でインストールしてください。似たような拡張が出てきますが本記事では「CodeZombie」の拡張機能に関して紹介します。</p>



<ol class="wp-block-list jinr-list">
<li>拡張タブを選択する</li>



<li>検索窓で「gitignore」と入力する。</li>



<li>検索された「gitignore」をクリックすると右側にgitignoreの説明が表示される。</li>



<li>インストールをクリックしてgitignoreをインストールする。</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="599" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-53-1024x599.png" alt="VSCode .gitignore" class="wp-image-5617" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-53-1024x599.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-53-300x176.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-53-768x449.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-53.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">gitignoreをインストールすると「Add gitignore」というコマンドが使用できるようになります。</p>



<p class="wp-block-paragraph">「Ctrl + Shift + P」またはF1でコマンドパレットを表示して、以下のように「Add gitignore」と入力してEnterを押してください。すると色々な.gitignoreの一覧が表示されますので、対象とする言語を選んでください。以下の例ではPythonを選択した場合です。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="948" height="706" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-54.png" alt="VSCode .gitignore" class="wp-image-5618" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-54.png 948w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-54-300x223.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-54-768x572.png 768w" sizes="(max-width: 948px) 100vw, 948px" /></figure>
</div>


<p class="wp-block-paragraph">「Add gitignore」を実行すると、自動的に以下のように.gitignoreファイルを作成してくれます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="477" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-55-1024x477.png" alt="VSCode .gitignore" class="wp-image-5619" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-55-1024x477.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-55-300x140.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-55-768x358.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-55.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Gitでバージョン管理する際に管理対象外を指定する<span class="marker"><strong>.gitignoreを自動生成する方法</strong></span>について紹介しました。方法としては以下の２種類を紹介しています。</p>



<ul class="wp-block-list jinr-list">
<li>GitHubでプロジェクトを作成する際に生成する</li>



<li>VSCodeの拡張機能で生成する</li>
</ul>



<p class="wp-block-paragraph">.gitignoreは自分でゼロから作るのは大変ですので、自動生成を使って作成した後、カスタマイズしていくとよいかなと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/git-gitignore-template-generate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gitのインストール方法（Windows）</title>
		<link>https://tech.nkhn37.net/git-install-windows/</link>
					<comments>https://tech.nkhn37.net/git-install-windows/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 04 Nov 2022 21:00:00 +0000</pubDate>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[インストール]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=5573</guid>

					<description><![CDATA[バージョン管理ソフトウェアであるGitをWindowsにインストールする方法について解説します。 Gitとは Gitとは、プログラムのソースコード等のバージョンを管理するソフトウェアです。ソースコード等の変更履歴データを [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">バージョン管理ソフトウェアである<span class="marker"><strong>GitをWindowsにインストールする方法</strong></span>について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Gitとは</h2>



<p class="wp-block-paragraph"><span class="marker"><strong>Git</strong></span>とは、プログラムのソースコード等のバージョンを管理するソフトウェアです。ソースコード等の変更履歴データを「リポジトリ」と呼ばれる場所で管理をします。</p>



<p class="wp-block-paragraph">Gitは、分散バージョン管理システムとも呼ばれます。バージョン管理ソフトウェアとして他にも有名なSubversion等のソフトウェアがありますが、リポジトリが全体で一つでした。そのため、開発者が増えると変更箇所がぶつかる（コンフリクト）がよく発生してしまうなど不整合が起こりやすくなります。</p>



<p class="wp-block-paragraph">Gitでは全体を統括する「リモートリポジトリ」と各開発者ごとの「ローカルリポジトリ」に分かれています。開発者は自分のローカルリポジトリに変更を記録していき、しかるべきタイミングでリモートリポジトリに変更を反映することができます。これが「分散」と呼ばれる理由です。</p>



<p class="wp-block-paragraph">なお、GitとGitHubと混同する方もいらっしゃいますが、GitとGitHubは全く別物です。Gitはバージョン管理ソフトウェアで、GitHubはGitを利用した開発者を支援するWebサービスであるので異なったものです。GitHubはGitの機能を使用しつつ、Pull RequestやIssue等の世界中のソフトウェアが開発者が参加して共同でプログラムを開発する枠組みを提供しています。</p>



<p class="wp-block-paragraph">本記事では、GitをWindowsにインストールする方法について解説をしていきます。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Gitのインストール方法</h2>



<h3 class="wp-block-heading jinr-heading d--bold">Gitのダウンロード</h3>



<p class="wp-block-paragraph"><a href="https://gitforwindows.org/" target="_blank" rel="noreferrer noopener">Gitのダウンロードページ</a>にアクセスします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="577" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-1024x577.jpg" alt="Git ダウンロード" class="wp-image-5574" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-1024x577.jpg 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-300x169.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-768x432.jpg 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-320x180.jpg 320w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-640x360.jpg 640w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32.jpg 1126w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">「Download」ボタンをクリックすると、最新のGitのインストーラーがダウンロードできます。本記事執筆時点では「2.38.1」でした。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Gitのインストール</h3>



<p class="wp-block-paragraph">ダウンロードしたexeファイルを実行します。</p>



<p class="wp-block-paragraph">以降は「Git 2.38.1」でのインストール画面になります。バージョンにより若干インストール画面が異なる場合が異なるかと思いますが、どのバージョンでも基本的には同様にクリックしていけばダウンロードできます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32.png" alt="Gitインストール" class="wp-image-5575" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-32-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">ライセンス条項を確認して「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-33.png" alt="Gitインストール" class="wp-image-5576" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-33.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-33-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-33-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">インストール場所は特に変更する必要ありませんが、必要あれば変更して「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-34.png" alt="Gitインストール" class="wp-image-5577" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-34.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-34-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-34-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">コンポーネントも基本的にはそのままのチェックで構いませんので「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-35.png" alt="Gitインストール" class="wp-image-5578" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-35.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-35-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-35-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="776" height="615" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-36.png" alt="Gitインストール" class="wp-image-5579" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-36.png 776w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-36-300x238.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-36-768x609.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></figure>
</div>


<p class="wp-block-paragraph">Gitでデフォルトで使用するエディタを選択して「Next」をクリックします。上記ではVSCodeを選んでいますがお好みのエディタで構いません。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-37.png" alt="Gitインストール" class="wp-image-5580" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-37.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-37-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-37-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">デフォルトブランチ名に関する設定です。「Override the default branch name for new repositories」を選択して「Next」をクリックします。以前はGitのデフォルトブランチ名はmasterでしたがmainに変わってきています。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38.jpg" alt="Gitインストール" class="wp-image-5581" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38.jpg 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38-300x236.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38-768x604.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">コマンドラインからどのように使用するかの選択ですが、Reccomendedになっている「Git from the command line and also from 3rd-party software」を選択し、「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38.png" alt="Gitインストール" class="wp-image-5582" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-38-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">SSHに関する選択ですが「Use bundled OpenSSH」を選択して「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-39.png" alt="Gitインストール" class="wp-image-5583" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-39.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-39-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-39-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">SSL/TLSに関する選択ですが「Use the OpenSSL library」を選択して「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40.jpg" alt="Gitインストール" class="wp-image-5584" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40.jpg 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-300x236.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-768x604.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">改行コードに関する選択ですが「Checkout Windows-style, commit Unix-style line endings」を選択し「Next」をクリックします。この設定ではコミット時に改行コードCRLFはLRにコンバートされてコミットされます。記載があるようにクロスプラットフォームで使用するプロジェクトで推奨されます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-1.jpg" alt="Gitインストール" class="wp-image-5585" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-1.jpg 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-1-300x236.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-1-768x604.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p class="wp-block-paragraph">ターミナルエミュレータに関する選択ですが「Use MinTTY (the default terminal of MSYS2)」を選択し「Next」をクリックします。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40.png" alt="Gitインストール" class="wp-image-5586" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-40-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p class="wp-block-paragraph">git pull時の選択についてですが「Default (fast-forward or merge)」を選択して「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-41.png" alt="Gitインストール" class="wp-image-5587" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-41.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-41-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-41-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">「Git Credential Manager」を選択して「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-42.png" alt="Gitインストール" class="wp-image-5588" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-42.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-42-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-42-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">「Enable file system caching」にチェックを入れて「Next」をクリックします。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-44.png" alt="Gitインストール" class="wp-image-5590" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-44.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-44-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-44-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">「Install」をクリックするとインストールが開始されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-45.png" alt="Gitインストール" class="wp-image-5591" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-45.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-45-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-45-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">以下の画面が表示さえたらGitのインストールは完了です。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="780" height="613" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-47.png" alt="Gitインストール" class="wp-image-5593" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-47.png 780w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-47-300x236.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-47-768x604.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>
</div>


<p class="wp-block-paragraph">「Finish」をクリックしてインストーラーを終了してください。</p>



<p class="wp-block-paragraph">上記のインストールが完了するとGit Bashというアプリケーションが入っていると思いますので起動してみてください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="345" height="67" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-48.png" alt="" class="wp-image-5594" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-48.png 345w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-48-300x58.png 300w" sizes="(max-width: 345px) 100vw, 345px" /></figure>
</div>


<p class="wp-block-paragraph">Git Bashが起動したら以下のコマンドを入力してみてください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git version</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="908" height="579" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-49.png" alt="" class="wp-image-5595" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-49.png 908w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-49-300x191.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-49-768x490.png 768w" sizes="(max-width: 908px) 100vw, 908px" /></figure>
</div>


<p class="wp-block-paragraph">上記のようにバージョンが表示されれば正常にGitがインストールされています。Git Bashで各種Gitコマンドを使用することで、Gitによるバージョン管理を行うことができます。</p>



<p class="wp-block-paragraph">また、Visual Studio等の各種統合開発環境(IDE)では、Gitと連携できるようになっているものが多く、IDEから直接Gitを使用することもできます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Gitの設定</h3>



<p class="wp-block-paragraph">Gitにユーザー名とメールアドレスを指定しておくことで、コミットした時に誰がコミット操作を行ったかを記録することができます。Git Bashに以下のように入力して、設定してください。「ユーザー名」「メールアドレス」の部分はそれぞれ皆さんの情報を入力してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git config --global user.name "ユーザー名"</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git config --global user.email "メールアドレス"</pre>



<p class="wp-block-paragraph">ユーザー名とメールアドレスが設定できているかどうかを確認するには以下のコマンドで確認できます。Git Bashに入力して確認してみてください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git config user.name</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git config user.email</pre>



<p class="wp-block-paragraph">設定情報が確認出来たら初期設定としては完了です。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">バージョン管理ソフトウェアである<span class="marker"><strong>GitをWindowsにインストールする方法</strong></span>について解説しました。</p>



<p class="wp-block-paragraph">Gitは現在のプログラミング開発では必須のツールの一つとなっています。バージョン管理について理解はSE、プログラマとして非常に重要な知識ですので、是非Gitをインストールして使い方に慣れていってもらいたいと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>


<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/git-install-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: tech.nkhn37.net @ 2026-06-07 01:14:43 by W3 Total Cache
-->