あまやどり開発雑記

システムエンジニア裏薄荷が”あまやどり”という夢を実現させるまでの道のりをつづったブログ。Webアプリ開発に関する技術的なコンテンツが主となります。

MENU

Gitの基本的な構成とコマンドのイメージを掴もう!

サーバー用のパソコンを分解して清掃している様子です。


こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっかです。

 

※以下、以前Bloggerに投稿していた記事を移行した内容になります。

 

今日はPyCharmでのGitの環境構築手順……の前に、Gitの基本的な構成とコマンドのイメージを掴んでいこうと思います。

 

……と言っても、筆者もGitを使い始めて1年半くらいです(^^ ;)

元々ずっと仕事だとSVNを使ってたので、最初はCommitの違いとかよくわからず、混乱しました。

その際に自分の整理用に図を描いたのですが、知り合いに見せたら好評だったので、この度清書してみました。

 

その絵がこちら。

大きく2つ、ノンベアリポジトリとリモートリポジトリに分かれている。ノンベアリポジトリは個々人の開発環境、リモートリポジトリはリモートサーバー上にある。ノンベアリポジトリの中にはローカルリポジトリと作業ディレクトリがあり、リモートリポジトリの中にはベアリポジトリがある。

 

◆基本的な構成要素

作業ディレクト : 開発者が直接編集しているソースコードが入っている。

ステージング(インデックス) : Git管理(履歴管理とチーム共有)を行う対象ファイルを管理する。

ローカルリポジトリ : 個々人の変更記録とブランチの管理、他のリポジトリの状態を追跡する。

ベアリポジトリ : チームでの変更記録を管理する。ソースコードの実体はない。

ノンベアリポジトリ : ローカルリポジトリと作業ディレクトリを含んだ全体を指す。

 

◆基本的なコマンド

add : Gitの履歴管理対象として新規作成したファイルを追加する。追加することで、各ファイルの差分が検知されるようになる。

commit : 作業ディレクトリの更新内容をローカルリポジトリに履歴として反映する。

push : ローカルリポジトリの変更内容をベアリポジトリに反映する。他者の変更と競合する場合は、他の変更を先に取り込むよう警告される。

clone : 初回にベアリポジトリの内容をコピーしてローカルリポジトリを生成する。

check out : 開発開始時に作業用にソースコードをローカルリポジトリから反映する。
fetch : ベアリポジトリで管理されている他者の変更をローカルリポジトリに取り込む。

merge : fetchで取得した他者の変更内容を作業用にソースコードに反映する。

rebase : 自分の更新内容を一時保存してから、mergeと同様に他者の変更内容を取り込む。修正履歴が段階的になるのがmergeとは異なる。

pull : fetchとmerge を一度に行う。

 

◆リモートサーバーの構成について補足(図の※部分)

ベアリポジトリがチーム全体で管理している変更履歴だが、それだけだとソースコードの実体はないので、サーバー内にノンベアリポジトリを構築している場合もある。

Webアプリなどの場合は、ノンベアリポジトリを本番環境にしているケースも。

そうした場合、リモートサーバー内のpullコマンドを毎回人の手で実行させるのは大変なので、pull実行をpost-receiveに定義して、自動反映することもある。

 

説明としては以上です。

なんとなくイメージ掴めましたでしょうか?

冒頭で述べた通り、筆者もGitのベテランではないので、もしかしたら不適切な説明があるかもしれません。その場合は、コメントで優しくご指摘いただけると助かります。

 

さて次回は、PyCharmでのGitHubの環境構築手順について説明していきます。

GitHubとは、この図で言うリモートサーバーの部分をweb上でクラウド管理するイメージです。

今後このブログで学習用のソースコード等を共有していくのにGitHubを利用する想定なので、環境構築しました。

筆者自身も勉強しながらになるので至らない部分もあるかもしれませんが、今後とも引き続き温かく見守っていただければ幸いです。

-----------------------------------

素材取得元

・トップイメージ

    [フリー写真] パソコンの中の掃除 - パブリックドメインQ:著作権フリー画像素材集
・図中のアイコン

    アイコン素材ダウンロードサイト「icooon-mono」 | 商用利用可能なアイコン素材が無料(フリー)ダウンロードできるサイト | 6000個以上のアイコン素材を無料でダウンロードできるサイト ICOOON MONO

Pythonの仮想環境Pipenvで生成されるフォルダやファイルとは?

表計算ソフトが表示されているパソコンの写真です。

 


こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっかです。

 

※以下、BloggerにUpしていた記事を移行した内容になります。 

 

今日は仮想環境のPipenvで生成されるフォルダやファイルについて説明したいと思います。

Pipenv環境って具体的にどんな感じなの?というのを掴んでいただくことが目的です。

 

もし、"そもそも仮想環境ってなぁに?"という方がいらしたら、先に下記の記事をお読みください。

 

tnim-amayadori.hatenablog.com

 

説明の前に断り書きですが、以下でPyCharmの画面を用いて説明を行います。

あくまでPipenv環境のイメージを掴んでいただくことが目的なので、PyCharm環境でのPipenvの設定方法については今回触れません。

もしPyCharm環境でのPipenv設定方法を知りたい場合は、以下の記事をご参照ください。

tnim-amayadori.hatenablog.com

 

さて本題です。


Pipenvで仮想環境を作成すると、プロジェクト直下に以下のような「Pipfile」が生成されます。

"Trial"というプロジェクトフォルダ直下に"Pipfile"と"Pipfile.lock"というファイルが置かれている。

 

これはインストールしたライブラリを管理するためのファイルです。
具体的な例を見ていきましょう。

 

pythonでコーディングをする際、import文を書くことがよくあると思います。
しかしただ記載するだけでは、コンパイルエラーとなります。


PyCharmだと以下のように赤い波線でエラー表示されていますね。

"import pandas"と記載されているが、"pandas"の部分に赤い波線が引かれている。

 

これは必要なライブラリがインストールされていないからです。
では、ライブラリ"pandas"をpipenvコマンドでインストールしてみましょう。

 

PyCharm下部

コマンドの実行結果として、緑色の文字で"Success!"と表示されます。

 

インストールが完了すると、コンパイルエラーが解消されます。

先ほどの"import pandas"の文字列から赤い波線が消えています。

 

 

さてここで、PipFileの中身を見てみましょうか。
下記の画面の左側がインストール前、右側がインストール後のPipFileです。
緑色の背景色になっている箇所が、変更箇所です。

[packages]と書かれた欄が左側は空欄、右側では"pandas = '*' "と追記されている。

 

インストールを行った"pandas"が追加されているのがわかりますね。

 

このようにPipFileにはユーザーがコマンド実行でインストールしたライブラリが記録されます。

 

今回は特にバージョン指定せずインストールしたので"*"となっていますが、バージョン指定すると"*"の代わりに指定したバージョン番号が記録されます。

 

他の変更ない箇所は、Pythonのバージョンなど、全体的な環境の情報になります。

 

 


さてもう一つのファイル、PipFile.lockを見てみましょう。

差分としてpandasの他、numpyなどのpackageが追加されています。

 

はい、見てわかる通り、インストール実行した"pandas"以外にも、"numpy"や"pytz"など、特に自分ではインストール実行していないライブラリが記載されています。

 

これらは"pandas"に必要な依存ライブラリです。

 

我々ユーザーとしては特に意識していませんが、Pipenvで"pandas"に必要なものを判断して、勝手に入れてくれたものですね。

 

さらに各ライブラリの情報を見ると、バージョンとhashについて必ず記載があります。
これらは、仮想環境内に入れたライブラリを厳密に管理するための情報です。

 

例えば他の人にソースを共有した際、Pipenvはこれらの情報を元に仮想環境を構築します。


ところで仮想環境とは、インストールしたライブラリを入れている箱のようなものだと以前ご説明いたしました。
(参照:【連載】Pythonのライブラリや仮想環境ってなぁに? 第3回 仮想環境ってなぁに? - あまやどり開発雑記)

 

ではその箱の中身を実際に見てみましょう。

 

PyCharmですと、設定画面から仮想環境のパスを以下のように設定画面から確認できます。

PyCharmのFileボタンをクリック後に表示されるSettingsボタンをクリックしてください。

 

以下の画面上部「Python Interpreter」の欄を見ていただくと、「.virtualenvs\Trial-rKEqFeaL」というフォルダがパスに記載されているのがわかりますね。

PyCharmのSettingsウィンドウ内にあるPython Interpreterの設定画面が開かれています。

 

実際にこのフォルダをエクスプローラーで見てみましょう。
こんな感じです。

 

.virtualenvsフォルダ内Trial-rKEqFeaLというフォルダの中身として、Libフォルダなどが表示されている。

 

色々とフォルダがありますが、中でもLib配下を見てみましょう。
こんな感じで、ライブラリ毎のフォルダが生成されています。

先ほどのLibフォルダ内のsite-packagesというフォルダ内に、インストールされたpandasなどのライブラリが入っている。

 

これらのフォルダの中身をさらに見ると、ソースコードが入っています。
(コンパイル済のソースのみで読めない状態で入ってるものもあります)

 

これが、Pipenvにおける仮想環境の実体というわけです。

 

似たようなフォルダはpipでもAnacondaでも生成されているはずです。

 

ちなみに、これらの仮想環境に入っているソースは、PyCharm上からでも見ることができます。

PyCahrmのProjectWindowからExternalLibrariesの中身としてpandasが表示されている。

 

PyCharmですと、例えばプログラム実行時にライブラリ側の処理でエラーが起きてTraceBackが出力された場合など、簡単にライブラリの中身のソースを参照することができます。


以上で仮想環境Pipenvを利用した場合のファイルやフォルダについての説明終わります。

なんとなくイメージは掴めたでしょうか?

 

次回は、Gitの基本的な構成やコマンドのイメージについてと、PyCharmでのGitHubの環境構築手順についての記事を更新していこうと考えています。

 

引き続きお読みいただければ幸いです。

 

-----------------------------------

素材取得元

PyCharmとPipenvを使ったPython開発環境の構築手順

f:id:tnim-amayadori:20210527164744j:plain

出典:

[フリー写真] ノートパソコンでメールをチェック - パブリックドメインQ:著作権フリー画像素材集

 


こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっかです。

 

※以下、Bloggerに2020年11月頃にUpしていた記事を移行した内容になります。 そのためバージョン情報等古い場合がありますので、あらかじめご了承ください。

 

さて、今日はPycharmとPipenvを用いたPythonの開発環境構築について、手順をご説明していこうと思います。

 

目次

 

 

1. 構築を行う環境
-なぜPyCharmとPipenvを使うのか?-


構築を行う環境について、どんな環境なのかと、なぜその環境を使うかについての説明です。(といっても理由づけは主観的なもので偏ってるので、あくまでご参考までに。)

 

先に前提として、OSはWindowsです。

 

OS : Microsoft Windows 10 Home
        (Ver. 10.0.17134 Build 17134)

 

これは単純に、私自身の愛用PCがWindowsだからです。LinuxMacも使ったことはありますが、現状自宅に環境がない状態です。

(この前ちょうど仕事でつくったのもあり、近い内にWSL環境つくってLinux触れるようにはしたいなぁ、と思ってます。)

 

 

さて、今回Python開発環境を構築するにあたって、セットアップを行うのは以下3つです。 

 

言語                   : Python 
                           (Ver. 3.8.1)
Python仮想環境  : Pipenv
統合開発環境       : PyCharm Community版
(兼エディター)      (Ver. 2019.3.3 Build 193.6494.30)

 

 

"Pythonの仮想環境ってなんぞや?"

という人がいましたら、前回のこちらの記事をお読みください。

tnim-amayadori.hatenablog.com

 

 

さて、仮想環境で有名なのは、pipやAnacondaです。
Pipenvはあまりメジャーではありません。


……が、こいつは便利なのです。
何が便利って、ソースコードを他の人と共有したい、って思った時に役立ちます。


ライブラリを使う場合、pipならpipコマンド、Anacondaならcondaコマンドを使って、必要なライブラリを入れます。Pipenvの場合はpipenvコマンドですね。

 

ソースコードを共有した場合、必要なライブラリも共有しないと動きません。

コードを共有された時に、コマンド使って必要なライブラリは入れてね、と言われたら、大変ではないでしょうか?

10個のライブラリを入れたら、10回pipなりcondaコマンドなりでinstallを実行する必要があります。

どんなライブラリを入れたか、忘れてしまうことだってありますよね。


で、これがPipenvの場合。


pipenvというコマンドを使ってライブラリをインストールすると、入れたライブラリを自動でPipfileとPipfile.lockという2つのテキストファイルに書き出してくれます。

 

そしてソースコードを共有された際にこれらのファイルがあれば、たった1回pipenvコマンドを実行するだけで、必要な全てのライブラリをインストールすることができます。

 

つまり、10個入れたライブラリのために10回コマンドを実行する必要はありません。
ライブラリの数が10個だろうと100個だろうと、1回コマンドを実行すれば、PipfileとPipfile.lockを元に、必要なライブラリを入れてくれるのです。


これがPipenvを使う目的です。

こちらのブログでは、今後Git-Hubを利用した学習用のソースコードの共有も考えているので、Pipenvの環境を前提としています。

 

 

PyCharmは言わずもがな、Python開発で一番有名な統合開発環境だと思います。

他の統合開発環境ですとEclipse、エディターだけで言えば無数にあります。

 

Eclipseは私自身はJava開発で使っていましたが……重いですよね。

PyCharmはEclipseよりは動作が軽いです。

 

PyCharm……というより、統合開発環境を使う理由というのは、文法ミスなどの検出やデバッガを利用することにより、効率的な開発を行うことです。

 

まあ……あらためて私が説明するほどの話ではありませんが一応初心者向けの記事ということで。

 

 

前置きが長くなってしまいましたが、それでは実際に環境を構築してみましょう。

 

2. 構築手順

2-1. Pythonのセットアップ

2-1-1. Pythonをダウンロードする。

まず以下のサイトにアクセスします。

https://www.python.org/downloads/windows/

Python公式サイトの画像キャプチャです。

 

「Latest Python 3 Release -Python 3.X.X (最新のPython3リリース)(※1)」をクリックしましょう。

Python公式サイトの画像キャプチャ、Version3.8.2のダウンロードページです。

 

最新のPythonのダウンロードページに飛びます。
ページの下の方にスクロールして

 

Python公式サイトの画像キャプチャ、Version3.8.2のダウンロードページの下側で、各種インストーラーの一覧が表示されています。

 

Windows x86-64 web-based installer」(※2)をクリックします。
クリックするとダウンロードが開始します。

 

※1. ダウンロードするバージョンはbugfixのstatusで最新のものを推奨します。もし本ブログでの講座のためにダウンロードする場合は、"3.9"系の最新バージョンをダウンロードしてください。(サンプルコード等、3.9系で開発しているため。)

バージョン毎のステータスは以下で確認できます。

https://www.python.org/downloads/

Python公式サイト、各バージョンのステータスが確認できる画面です。


※2. "web-based"とは、必要なファイルをインストール時にインターネット接続して取得する形式のことです。そのためもしインターネットがつながらない環境で構築されたい方は、インターネットがつながる環境で「Windows x86-64 executable installer」をダウンロードしてから、インターネットがつながらない環境にinstallerを転送してください。

 

2-1-2. Pythonをインストールする。

ダウンロードを終えたら、保存した「python-3.8.2-amd64-webinstall.exe」をダブルクリックしましょう。

 

Pythonインストーラーの初期画面です。

 

下部の「Add Python 3.8 to PATH」のチェックボックスを選択します。

先ほどのインストーラーの画面下部のチェックボックスが選択されています。

 

これはシステム環境変数にパスを追加する、ということです。
"python"というコマンドを実行するための設定ですね。

 

下記のOptionではpipを必ず選択してください。
他は任意ですが、一通り入れておくと便利ですね。

PythonインストーラーのOptional Featuresの画面です。

 

Optionはこんな感じです。
環境変数の追加はチェックを入れておきましょう。

Pythonインストーラー、Advanced Optionsの画面です。

 

設定できたらインストール実行です。
「web-based installer」の場合、インターネット接続が前提なので、接続している状態でインストールを実行しましょう。

 

インストールの完了を待ちます。

Pythonインストール中の画面です。

 

これにてインストールは完了です。

 

インストールが完了してSetup was successfulと表示されている画面です。

 

2-1-3. Pythonがインストールされたことを確認する。

 

コマンドプロンプトを管理者権限で起動しましょう。

 

WIndowsのメニューからコマンドプロンプトを選択し、管理者として実行を選択している画面です。

以下のコマンドを実行しましょう。

 

 

Windwsコマンドプロンプト
    # pythonのバージョン確認
python --version

以下のようにバージョンが表示されれば、インストールは問題なく完了しています。

 

実行コマンドの下行に"Python 3.8.2"と表示されている。

 

2-1-4. pipがインストールされていることを確認する。

 

以下のコマンドを実行してください。

Windwsコマンドプロンプト
    # pipコマンドのバージョン確認
pip --version

以下のようにバージョンが表示されていれば問題ありません。

実行コマンドの下行に"pip 19.2.3 from..."と表示されている。

 

2-2. Pipenvのセットアップ

2-2-1. Pipenvをインストールする。

先ほど開いたコマンドプロンプトで、以下のコマンドを実行します。
これもインターネットに接続されている前提なので、接続されている状態で実行してください。

Windwsコマンドプロンプト
    # pipenvのインストール実行
pip install pipenv

実行するとインストール結果が表示されます。

場合によっては、画面末尾のようにWARNINGが表示される場合もありますので、その場合は表示されたメッセージに従ったコマンドを実行しましょう。

コマンドの実行結果、WARNINGが表示されている。WARNING末尾にこのコマンドを使ってpipをupgradeしなさい、という旨の英語が記載されている。


画面の例だとこんな感じでコマンドを実行します。

WARNINGに従って"python -m pip install --upgrade pip"というコマンドを打ち込んだ画面です。

2-2-2. Pipenvのインストール結果を確認する。

以下のコマンドでインストールされたことを確認します。

Windwsコマンドプロンプト
    # pipenvのバージョン確認
pipenv --version

画面のようにバージョンが表示されたら問題ありません。

コマンド実行結果として"pipenv version 2018.11.26"と表示されている。

 

 

2-3. PyCharmのセットアップ

2-3-1. PyCharmをダウンロードする。

以下のサイトからPyCharmをダウンロードします。

https://www.jetbrains.com/ja-jp/pycharm/download/#section=windows

PyCharm公式サイトの画面キャプチャです。

 

無料のコミュニティ版であれば、企業でも無料で利用できます。
特にDB構築やWebアプリケーション開発をしないのであれば、コミュニティ版で十分です。


2-3-2. PyCharmをインストールする。

保存したexeファイルをダブルクリックして実行しましょう。
設定は基本的に変えずにそのままで問題ありません。

PyCharmインストーラーの起動直後の画面です。

PyCharmインストーラーでインストール先のフォルダを指定する画面です。

PyCharmインストーラーでOptionを設定する画面です。PATH変数追加しておくと便利です。

PyCharmインストーラーでプログラム名を設定する画面です。デフォルトのJetBrainsのままで問題ありません。

PyCharmのインストーラーでインストールを実行している画面です。

 

下記画面にて、インストール完了です。
続いて設定を行うので、「Reboot now」を選んで起動しましょう。


※サンプル画面では一時中断したので、後で起動するを選択していますが皆さんは続けて作業を行うのですぐ起動しましょう(^^ ;)

PyCharmインストーラーのインストール完了画面です。

 

2-3-3. PyCharmを設定する。

インストールしたPyCharmを起動します。

 

するとこんな画面が出てくるので、特に取り込みたい設定がなければそのままOKを押下しましょう。


※過去にインストールした設定や、他の人が設定した環境を取り込みたい場合などに、「Config or installation foler」を選択します。

"Import PyCharm Settings from..."と表示されるので"Do not import settings"を選択します。

 

プライバシーポリシーに同意します。

プライバシーポリシーが表示されています。

 

機能向上のためにデータ送信で貢献しておきましょうか。

"Data Sharing"という画面にて情報を送信してよいか聞かれています。

 

 

デザインは好きな方を選択してください。

背景が黒のデザインと白のデザインが選択できます。

 

 

さて、いよいよPyCharmの起動です。
まずはプロジェクト(プログラムを管理する単位)を作成しましょう。

 

PyCharmの起動画面です。"Create New Project"を選択してください。

 

適当なプロジェクト名を「PycharmProjects」に続けて入力しましょう。
入力したら、「Project Interpreter」横の「▼」をクリックして、設定を開きます。

プロジェクト名として"ShareLearning"を指定しています。

 

画面のように、先ほどインストールした「Pipenv」を仮想環境として設定します。

"New environment using"で"Pipenv"を選択します。"Base interpreter"として先ほどインストールしたpythonのexeファイルを選択します。

 

 

作成すると、いよいよコーディングができる状態に。

PyCharmの起動直後の画面です。

 

 

試しに簡単なプログラムを書いてみましょう。
プロジェクト名を右クリックして、pythonファイルを作成します。

例だと"ShareLearing"というプロジェクト名を右クリックして表示された"New"をクリックし、"Python File"を選択しています。

 

ファイル名を入力します。

ファイル名として"hello_world"を入力しています。

 

ファイルが作成されて、エディターが開きます。

"hello_world"というタブが表示され、編集できる状態で開いています。

 

以下の命令文を書いてみましょう。

hello_world.py
    # コンソールに指定した文字列を出力
print("Hello world!")

エディタにprint("Hello world!")と入力されています。

 

実行結果を確認するために、画面下部にある「Terminal」を開きます。

PyCharm下部に表示されているTerminalをクリックするとウィンドウが開きます。

 

起動したら、以下のコマンドを実行しましょう。

PyCharm Terminal ウィンドウ
    # pipenvでプログラムを実行
pipenv run python .\hello_world.py

Terminalのウィンドウにコマンドを入力しています。

 


実行すると、以下のように"Hello wolrd!"と表示されました!

Terminalのウィンドウに実行結果として"Hello world!"が出力されています。

 

これにて、開発環境の構築は完了です。

 

次回は、Pipenvの仮想環境だと具体的にどのへんにどんなフォルダやファイルが生成されるのか、軽く説明しようかな、と思います。

 

引き続き、お読みいただけましたら幸いです。

 

【連載】Pythonのライブラリや仮想環境ってなぁに? 第3回 仮想環境ってなぁに?

ガラスで廊下と区切られたサーバールーム、廊下にはノートパソコンをいじる女性が立っています

出典:

[フリー写真] サーバーと廊下でパソコンを開くエンジニア - パブリックドメインQ:著作権フリー画像素材集

 


こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっかです。

※以下、以前BloggerでUpしていた記事を移行した内容になります。

 

さて、今日はPythonのプログラミング……の前に。

 

"ライブラリってなぁに?"
"仮想環境ってなぁに?"

 

と言葉の意味がわからず、

 

"プログラミングって難しい、わかんない!!”

 

とつまずいてしまった方のために、全3回に分けて説明をしています。

 

初心者が大まかなイメージをつかめることを目的にしているので、厳密には違う部分が出てくるかもしれませんが、そこはご容赦ください。


最終回となる第3回では、Pythonにおける"仮想環境"という言葉の意味を説明していきます。

 

先に説明した"ファンクション"や"ライブラリ"という言葉のイメージを掴んでいることが前提ですので、まだお読みでない方は、先にそちらの記事をお読みください。

 

tnim-amayadori.hatenablog.com

tnim-amayadori.hatenablog.com

 


第3回 仮想環境ってなぁに?

 

先に注意書きです。

 

"仮想環境"という言葉自体は、Python以外でも出てきます。

ここで説明するのは、あくまでPythonにおける仮想環境の意味、になります。

Python以外の文脈で出てきた場合には意味が異なりますので、注意してください。

 

では本題、Pythonにおける"仮想環境"という言葉の意味について。

 

Pythonだと、"Anaconda"だとか"pip"だとか、そんな言葉とセットで"仮想環境"という言葉が出てきます。

 

Pythonでいう仮想環境とは、先ほど説明したライブラリなどを管理するための環境です。

 

……と言われても、よくわかりませんよね。

 

では、そもそもなぜライブラリを管理する必要があるのか、そこから説明していきましょう。

 

第2回で、ライブラリはたくさんのレシピ(=ファンクション)がつまった図書館のイメージだと説明しました。

 

本棚の前に座る人物のピクトグラム、図書館のイメージイラストです。

さてこの図書館、随時新しいレシピ(=ファンクション)を用意したり、既にあるレシピもよりよく改良したりします。

 

あなたが図書館のレシピを利用するには、図書館にあるレシピを丸々、あなたが開発を行うPC等に入れる必要があります。

 

この図書館(=ライブラリ)のレシピを丸々入れることをインストールと言います。

 

当然、あなたがレシピを丸々入れた後にも、元の図書館では、レシピが日々更新されているかもしれません。

 

そのため、いつどの時点のレシピのセット(=ライブラリ)をあなたが入れたのかわかるように、バージョンという番号がライブラリには振られています。

 

2つの本棚、左側の本棚はVersion1.0.0のライブラリ、右側の本棚は本が増えており、Version2.0.0のライブラリとなっている。

 

さて、図書館のバージョンアップが行われる際、単純に新しいレシピ(=ファンクション)が増えるだけならいいのですが、削除されたり、レシピに必要な材料(=引数)や、逆にできあがる料理(=戻り値)が変更されてしまう場合もあります。

 

つまり、あなたの作成したプログラムがバージョン1.0.0のライブラリのレシピ(=ファンクション)を前提としていたのに、バージョン2.0.0のライブラリでは、必要なレシピ(=ファンクション)が消えてしまってプログラムが動かなくなってしまう!なんてことになる可能性があるわけです。

 

上半分の左側にプログラムAと書かれた書類、右のVersion1.0.0のライブラリである本棚の本を参照しています。それに対して下の左側、プログラムAは変わっていないのですが、Version2.0.0の本棚からは参照していた本が消えてしまいました。

 

仮にこの作成済のプログラムをプログラムAとしましょう。

 

さて、あなたはプログラムAとは別に、新しくプログラムBを作りたいとします。

 

新しく作るプログラムBでは、バージョン2.0.0で新しく追加された便利なレシピ(=ファンクション)を使いたい。。。

 

そんな風に思うかもしれませんね?

 

その場合、

 

プログラムAではバージョン1.0.0のライブラリ、

プログラムBではバージョン2.0.0のライブラリ、

 

を使えるようにしたいわけです。

 

上のプログラムAからはVersion1.0.0の本棚に存在している本、下のプログラムBからはVersion2.0.0の本棚に新しく追加された本を参照しています。

 

ここで、"仮想環境"の出番となるわけです。

 

このプログラムAやプログラムBに必要なライブラリをまとめて入れて管理するのが、"仮想環境"です。

 

要はこんな箱のイメージですね。

 

左側はプログラムAのための仮想環境としてライブラリαVersion1.0.0とライブラリβVersion3.1.0の本棚が箱に入っている。右側はプログラムBのための仮想環境として、ライブラリαVersion2.0.0とライブラリγVersion5.0.1が一つの箱に入っている。2つの仮想環境はどちらもあなかの開発環境であるパソコンの中に入っている。

 

よく聞くAnacondaやpipとは、この箱にライブラリを出し入れ(インストール/アンインストール)したり、箱に入っているライブラリのバージョンを管理するためのツールになります。

 

またどのプログラムに対して、どの箱が紐づいているかも管理しています。

 

先ほどの2つの仮想環境の箱に、ネットワークからライブラリを運ぶ人々のイラストが描かれている。ライブラリを運ぶ、つまりインストールしているのがAnacondaやpipなどのイメージとなる。

 

 

なんとなく、"仮想環境"という言葉のイメージはつかめましたでしょうか?

 

 

これにて全3回に渡って説明いたしました「【連載】Pythonのライブラリや仮想環境ってなぁに?」は終了となります。

 

この後Pythonの開発環境構築手順に関する記事を更新する予定です。

その際に、具体的にどのフォルダやファイルが仮想環境にあたるのか、軽く触れたいと思います。

よろしければ、引き続きそちらの記事もお読みいただければ幸いです。

 

----------------------------------------------------------------
イメージ素材取得元:

 ----------------------------------------------------------------

【連載】Pythonのライブラリや仮想環境ってなぁに? 第2回 ライブラリってなぁに?

ライブラリのイメージ、本棚がぎっしりとつまった図書館の写真です。

出典:

[フリー写真] 本棚が並ぶリーズ図書館の風景 - パブリックドメインQ:著作権フリー画像素材集


こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっかです。

※以下、以前BloggerでUpしていた記事を移行した内容になります。

 

さて、今日はPythonのプログラミング……の前に。

 

"ライブラリってなぁに?"
"仮想環境ってなぁに?"

 

と言葉の意味がわからず、

 

"プログラミングって難しい、わかんない!!”

 

とつまずいてしまった方のために、全3回に分けて説明をしていきます。

 

初心者が大まかなイメージをつかめることを目的にしているので、厳密には違う部分が出てくるかもしれませんが、そこはご容赦ください。

 

第2回は、"ライブラリ"という言葉のイメージについて説明していきます。

 

第1回で説明した"ファンクション"という言葉のイメージが掴めている前提ですので、まだお読みでない方はそちらを先にお読みください。

 

tnim-amayadori.hatenablog.com

 

 

第2回 ライブラリってなぁに?


さてファンクション(関数)のイメージをつかめたところで本題です。


ライブラリ、という言葉の意味について説明していきましょう。

 

Pythonソースコードを少しでも書いたことがある人は、こんな風に"from"や"import"と書かれているのを見たことがありますかね?

 

python
    from pandas import read_csv
import pandas

 

ここに書いてある"pandas"についてGoogle検索をかけてみると、

 

"データ解析を支援する機能を提供するライブラリである"

 

と説明が出てきます。

 

つまり"from"だったり"import"されている"pandas"はライブラリなわけです。

ライブラリ、という言葉はLibrary、直訳すると"図書館"です。

 

さてここで、第1回でお話したファンクション(関数)の話に戻りましょう。
ファンクション(関数)はお料理でいうレシピのようなもの、というお話をしました。

 

それに対してライブラリは、たくさんのレシピがつまった図書館、というイメージです。

 

本棚の前に座る人物のピクトグラム、図書館のイメージイラストです。

先ほどの料理の例で説明すると、例えば材料の基本的な下ごしらえの処理方法、わざわざあなたが新しく考える必要があるでしょうか?

 

……こだわる人は考えるかもしれませんが、調べればいくらでも他の人が考えた適切な下処理の方法がありますよね。webで検索をかけてもいいですし、何か本を買ってもいいかもしれません。

 

ライブラリもそれと同じで、よく使うような処理について、誰でも使いやすいようにまとめてあるので、あなたは0から処理を考える必要がありません。


先ほどの"pandas"の例で見てみましょう。

python
    from pandas import read_csv
import pandas
csv_path = r"C:\folder\sample.csv"
csv_data = read_csv(csv_path)

 

"pandas"はライブラリですが、"read_csv(CSV読み込み処理)"は"pandas"というライブラリ(図書館)が持っているファンクション(関数)です。

 

"read_csv(CSV読み込み処理)"の引数は"csv_path(CSVファイルのパス)"です。
それに対して戻り値"csv_data(CSVのデータ)"は、読み込んだデータです。

 

"read_csv"の中でどんな処理をしているか、あなたは意識する必要がありません。
あなたが意識するのは、引数と戻り値だけ。

 

先ほどの料理の例でいうと、どんな材料を渡してどんな料理ができあがるのか、それだけを意識すればいい、というわけです。

材料とできあがった料理だけを意識する人のシルエット、材料から料理になるまでの間のレシピについては意識していない。

 

例で取り上げた"pandas"は、"read_csv"のようにデータを読み込んだり、読み込んだデータを加工するための便利な機能が提供されています。"pandas"についてはまたあらためて記事を投稿します。

 

なんとなく、"ライブラリ"という言葉のイメージはつかめましたでしょうか?

 

次回は、「仮想環境ってなぁに?」というお話です。
引き続きお読みいただければ幸いです。

----------------------------------------------------------------
イメージ素材取得元:

 ----------------------------------------------------------------

【連載】Pythonのライブラリや仮想環境ってなぁに? 第1回 まずはファンクション(関数)のイメージをつかもう!

出典:

[フリー写真] ノートパソコンと女性が使う計算機 - パブリックドメインQ:著作権フリー画像素材集

 

こんにちは。初めましての人もそうでない人も、裏薄荷(うらはっかです。

※以下、以前BloggerでUpしていた記事を移行した内容になります。

 

Pythonのプログラミング……の前に。

 

"ライブラリってなぁに?"
"仮想環境ってなぁに?"

 

と言葉の意味がわからず、

 

"プログラミングって難しい、わかんない!!”

 

とつまずいてしまった方のために、全3回に分けて説明をしていきます。

 

初心者が大まかなイメージをつかめることを目的にしているので、厳密には違う部分が出てくるかもしれませんが、そこはご容赦ください。

 

第1回は、"ライブラリ"や"仮想環境"の前に、"ファンクション"という言葉のイメージを掴みましょう。

 

 

第1回 まずはファンクション(関数)のイメージをつかもう!

 

"ライブラリ"や"仮想環境"という言葉を説明する前に。
準備体操として"ファンクション(関数)"という言葉について、イメージをつかんでおきましょう。

 

さて突然ですが、これからプログラミングをしよう、というあなたは、一流のシェフです。

一流シェフのピクトグラム

 

これからあなたは、オリジナル料理のレシピを作成しようとしています。
どんな材料を使うか、どんな料理を作るかはあなたの自由です。

料理をする流れは、以下のようになるでしょう。

 

材料 --> レシピに従って調理--> オリジナル料理の出来上がり 

レシピのイメージ、海老やミルクなどの材料を元にレシピで調理した結果、ピザやアイスクリームなどのお料理ができあがります。

 
ずばり、この料理の流れが、ファンクション(関数)のイメージです。

例えで言うと、レシピがファンクション(関数)に該当します。


では、ファンクション(関数)の例を見てみましょう。 

 
python
    def original_juice(fruit, base_milk):
    cup = "glass"
    juice = fruit + base_milk + cup
    return juice

 

 

これだけ見てもよくわからないかもしれませんね。
1行ずつ説明していきます。

 

1行目、"def"は”original_juice(オリジナルジュース)”という名前のファンクション(関数)です、という宣言です。

 

()の中の"fruit(果物)"と"base(ベースの液体)"は引数と言います。
先ほどの料理の流れで言うと、材料にあたる部分ですね。

 

料理の材料、小麦やエビ、ミルクなど

 

それに対して4行目、"return"で返却されている"juice(ジュース)"は戻り値になります。
先ほどの料理の流れで言うと、出来上がったオリジナル料理ですね。

 

完成した料理のイメージ、ピザやアイスクリーム、ごはんなど

 

……ということは、間の2行目と3行目、ここがレシピに該当します。
どんな調理を行うかの手順になります。

 

レシピが書かれた紙の画像です

 

2行目、必ず"cup(コップ)"は"glass(ガラスコップ)"にしましょう。
3行目、"juice(ジュース)"は"fruit(果物)"と"base(ベースの液体)"と"cup(コップ)"を合わせるだけ。
とっても簡単な手順ですね。

引数として渡された果物とベースとなる液体をあわせて容器に入れたらジュースのできあがり!

 

この例ではfruitとbaseとcupを足すだけですが、もっと複雑な処理を入れても構いません。
juiceを2倍にしてもいいですし、fruitがjuiceに適しているかチェックしてもいいですね。

 

こうした処理をまとめたものがファンクション(関数)です。
今回の例では引数と戻り値がありましたが、引数と戻り値がない場合もあります。

 

つまりファンクション(関数)とは、PCに決まった処理をさせるまとまり、お料理で言うとレシピのようなイメージです。

 

なんとなく、イメージはつかめましたでしょうか?

 

次回は本題、「ライブラリってなぁに?」というお話です。
引き続きお読みいただければ幸いです。

 

----------------------------------------------------------------
イメージ素材取得元:

 ----------------------------------------------------------------