Python の Windows へのインストールと pip の使い方



今回は Python の Windows 環境におけるインストールと、 そのパッケージ管理プログラムである pip の使い方についてです。

Python Logo

Python とは

Python はスクリプト言語の中ではトップクラスでメジャーな言語です。

ただ、特徴として際立って良いと感じるところはありません。 速度は C の親和性では Lua の方が上ですし、 書きやすさやオブジェクト指向言語としての質は Ruby に劣ります。 科学技術計算の分野でも Julia や R 言語ほどの専門性はありません。
しかし、ダメな部分もほとんどなく、ハイレベルでバランスのとれた言語だと思います。 また、シェアが広いというのはそれだけで大きな利点といえます。

文法としてオフセットルールと呼ばれるインデントによるブロックを採用していて、 大きな特徴ですが賛否が分かれるところです。 個人的にはかなり「否」ですが、キライでも抑えておいた方がいいかなと思えるほどにメジャーな言語です。

Python のインストール

Python のサイトのダウンロードページからダウンロードします。 ページの先頭で最新版のリンクが 2.X 系、 3.X 系それぞれで出ています。 Python ではバージョンの 2 と 3 では違いが大きく、 ツールなどで 3 系に対応していないものなどが多く残っています。 そのため、 2 系もまだ使われており、それなりにメンテもされているようです
基本は 3 系をダウンロードすればいいのですが、 2 系が要求されるようなツールを使いたいという場合はそちらを選択します。

python_dl.png

3.X 系

3.X 系を選択すると、そのバージョンのダウンロードページになるので、その下の方にでている Windows 用のインストーラーを選択します。
自分の PC に合わせて 32 ビットか 64 ビット用にし、 Web インストーラーか通常のインストーラーかを選びます。 ネットにつながらない PC に持って行ってインストールするのでなければ、 Web インストーラーかどうかはどちらでもあまり変わりません。

python_dl3.png


ダウンロードしたインストーラー(python-3.X.X[-amd64][-webinstall].exe) を実行するとインストールが始ります。

python_ints3.png

インストーラーの最初の画面で、 [Add Python to 3.X to Path] の項目に h チェックを入れるとインストーラーで環境変数 PATH に追加するようにできます。 手動で設定する手間が減るため、はじめてのインストールの場合は設定した方がよいです。

インストール先を変更したり、デフォルトのインストール構成から変更したりする場合は [Customize install] から細かく指定していくことになりますが、 特にする必要がなければ、 [Install Now] を選択するとインストールが完了します。

2.X 系

2 系では次のようなダウンロードページになりますので、 そこで 32 ビットか 64 ビットの Windows 用のインストーラー(python-2.X.X.[amd64.]msi) をダウンロードします。

python_dl2.png


ダウンロードしたインストーラーを実行すれば、 Python はインストールが開始されます。

ウィザードの次のページでインストール先を変更することができます。

python_inst.png


その後、インストールするものをカスタマイズする画面が出てきます。
デフォルトではチェックが入ってませんが、ここにインストーラーで環境変数 PATH に追加するようにできます。 手動で設定する手間が減るため、はじめてのインストールの場合は設定した方がよいです。

python_ints2.png

Python の使い方

インストールが完了したら、動くか確認してみます。
Python の実行ファイルは python.exe です。

とりあえず動くことを確認するには -V (--version)オプションでバージョンが表示します。
> python -V
Python 2.7.12
また、 -h (--help) でヘルプが表示されます。
> python.exe -h

スクリプトファイルの実行

python の基本的な使い方としては、スクリプトファイルを渡して実行します。

hello.py :
   print("Hello world!");
> python.exe hellol.py 
 Hello world!

対話モード

python の後にスクリプトファイルを指定しないと対話モードで起動します。 ただ、環境によっては標準入力待ちの状態になるので、-i をつけると明示的に対話モードとなります。
> python -i
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello world!")
Hello world!
>>> quit()

pip とは

アプリケーションやライブラリーなどのインストールする際の集まりをパッケージと呼び、 Python では PyPI のサイトに登録されています。 パッケージはパッケージ管理プログラムをを使って、ネットから取得してインストールしたり、インストール済みパッケージの管理をしたりすることが出来ます。 パッケージ管理プログラムではインストールする場合にその依存ライブラリーも一緒にインストールしてくれます。

Python では前はパッケージ管理プログラムはいろいろあってごちゃごちゃしていたのですが、 pip に落ち着いたようです。
最近のバージョンは 2, 3 系ともに Python と一緒にインストールされるようになっています。 インストーラーで PATH の設定をしていれば、 pip(.exe) のあるフォルダーも追加されます。

pip の使い方

pip は最初の引数をコマンドとして種々の操作を行います。取り得るオプションや引数はそのコマンドによって変わってきます。
> pip コマンド [オプション] [引数]

パッケージのインストール (install)

パッケージのインストールは install コマンドを使用します。
> pip install パッケージ名
パッケージ名でインストールするパッケージを指定します。
> pip install jupyter
パッケージは最新版がインストールされますが パッケージ名=バージョン(foo=1.2.3) とするとバージョンを指定することができます。 = だけでなく、 < > といった不等号も使えます。

パッケージのアップグレード(install -U)

パッケージのアップグレードは install コマンドで -U(--upgrade) オプションを付けて実行します。
> pip install -U パッケージ名
なお pip(.exe) 自体をアップグレードする場合、実行時に自身の上書きができないため、 次のように python から pip を呼び出してアップグレードします。
> python -m pip install -U pip

その他のコマンド

その他のよく使いそうなコマンドもいくつかあげておきます。

コマンドの書式 説明
pip -h
pip コマンド名 -h pip help [コマンド名]
ヘルプの表示。
コマンド名を指定すると、そのコマンドのヘルプを表示。
pip uninstall パッケージ名 パッケージのアンインストール
pip list インストールしたパッケージのリストの表示。



スポンサーサイト
 

Emacs 25.1 を使ってみた

Emacs のメジャーバージョンアップがあり、 Windows 版の IME パッチ済みバイナリーも公開されみたいなので、 Emacs を 25.1 にあげて使ってみました。
今回はリリースノートをベースに Emacs 25.1 の新機能や使ってみて気付いた点を紹介したいと思います。

なお、使用したのは Windows 版です。 Emacs 25.1 の Windows でのインストールに関しては前回使っていたのとほとんど変わってませんでした。
以前の記事を多少書き直したので、インストールに関してはそちらをご覧ください。

大きな変更

今回の目玉だと思う機能追加は 2 つです。
  • ネイティブウィジェットを埋め込める機能
  • Emacs Lisp からダイナミックライブラリーを利用可能に

ネイティブウィジェットの埋め込み

この機能がバージョン 25 での売りっぽいです。
「ウィジェット」というのは Unix 系の GUI ツールキットで GUI 部品を指す用語で、 Linux では GTK++ といったウィジェットを使えるようになります。
WebKit のウィジェットを使えば Emacs で html ページも表示できるようになるらしいです。

ただ、 Windows は未対応っぽいので、試せてないです。

Emacs Lisp からのダイナミックライブラリー利用

Windows での dll 、 Unix 系での シェアードライブラリー(so) を elisp から使えるようになる機能です。
メジャーなスクリプト言語を使っている人にはそれほど大した機能に思えないかもしれませんが、 これはかなり大きな変更です。

Emacs には数々の拡張機能がありますが、外部とのやりとりは標準入出力などによるテキストのみでした。 これは「短いプログラムをテキストのやり取りでつなげて使う」という Unix の思想によるものです。
それがライブラリーも直接使えるようになると、今後の拡張機能の広がりに期待が膨らみます。


この機能を利用すると Emacs lisp から mruby を利用するということもできるらしいです。

その他の変更

Cairo による描画の実験的サポート
Cario というのは様々なデバイスが出力対象となる描画ライブラリーです。
Xlib や Win32 のような環境別に対象を帰れれるだけでなく、 PDF, SVG, OpenGL といったものも描画対象できるライブラリーらしいです。 まだ実験段階なので何とも言えませんが、今後が楽しみな方向性だと思います。

Network Security Manager(NSM) によるネットワークセキュリティの拡張(TLS/ SSL 証明書など)
どの辺の通信が変わったのかよくわかりませんが、いいことじゃないかと。


次の 3 つは日本語を使っている人にとってはほとんど使わない機能かなと思います。

マイナーモード electric-quote-mode の追加
有効にしておくと文字列やコメント内でクオートが書きやすくなります。
  • ``
  • ''

インクリメンタルサーチ(isearch)における Charactor fold のサポート
Emacs では大文字小文字を区別しないことを Case fold と読んでいます。 Charactor fold ではさらに似た文字も検索できるようになります。
文字 "a" を表すのに "ⓐ" といった具合に Unicode ではアルファベット 1 文字に色んな種別のものが用意されています。 これが種別の区別なく検索できるようになります。

試したい場合はメニューの [Options] → [Default Search Options] から設定できます。

入力可能なユニコード文字の追加
C-x 8 で始まるキーに Unicode 文字を挿入するコマンドが割り当てられています。 例えば、 C-x 8 C で "©" といった感じです。
これの種類が増えたらしいです。

IME の変換を使えば、 "こぴーらいと" で "©" というように特殊文字の入力もできるので、 使わない機能だと思います。

リリースノートに関してもっと詳しく変更点を知りたい場合は次の記事が参考になるのではないかと思います。


リリースノート以外で使っていて気付いた点は次の 2 つです。
  • 候補表示の一時バッファーのサイズが候補数に合わせて変わるようになった
  • 置換で履歴が少し使いやすくなった
Windows の IME 関連で気付いた点です。
  • IME 入力時の文字サイズの不一致が大きくなった
  • IME 入力時にたまに落ちていたのが、なくなった



 

GitHub Desktop を使って楽々 GitHub 入門

GitHub はオープンソースソフトウェア開発のためのサービスです。
ただ、 GitHub は名前の通り、バージョン管理システムに Git を使っており、若干、最初のハードルが高いです。 そのせいか、 GitHub では GitHub Desktop というアプリを提供しており、 なるべく簡単に使えるようになっています。
そこで、今回は GitHub Desktop を使って、 Git の知識があまりなくても GitHub を利用したちょっとした開発ができるような入門記事を書いてみました。

ちなみに、今回は GitHub を使った開発の入門です。 単に GitHub に公開されているソースを利用したいという場合は以前の記事をご覧ください。

GitHub とは

OSS ホスティングサービス

GitHub は OSS ホスティングサービス の一つです。
OSS(Open-Source Software) ホスティングサービス はソフトウェア開発、公開のための Web サービスです。 オープンソースといってますが、有料版ならオープンソースでなくても使えるものもあります。
このサービスとしては次の機能があるのが普通です。

機能 主な用途
バージョン管理システム ソースコードの公開、管理
バグ追跡(プロジェクト管理)システム 要望、バグ報告
Wiki などのドキュメントシステム ソフトウェアの説明

GitHut の特徴

OSS ホスティングサービスのサイトはいっぱいあるのですが、その中でも GitHub はトップと言っていいほど、 メジャーなサイトです。
その特徴は次の 2 つです。
  • ドキュメントもソースと同じように管理
  • バグ修正などのパッチの提供とマージがやりやすい
通常 Wiki などでは Web 上でないと修正できません。 それに対し、GitHub ではドキュメントとソースが一緒に管理され、自分の好きなエディターで編集できますし、 Web からドキュメントを編集することもできます。
この GitHub のドキュメントは GitHub 用に拡張された MarkDown で記述します。
Git の分散バージョン管理システムによる分岐(Fork)を利用することによって、 バグ修正などを送ることが簡単に出来るようになってます。 受け取る側も、その修正分の取捨選択や部分的なマージなどがやり易いです。
また、ソースと一緒に管理しているので、同じことがドキュメントに対してもできます。


そのかわりといっては何ですが、 GitHub ではバージョン管理システムとして Git しか選べません。
Subversion のような集約型に比べると分散バージョン管理システムは難解ですし、 Git は機能が豊富な分とくに厄介です。

GitHub Desktop とは

GitHub Desktop は GitHub が提供しているデスクトップアプリで、 GitHub を利用した開発を簡単にするための Git のフロントエンドプログラムです。

ただ、逆にいうと簡単なことしかできません
Windows ではコマンドラインで Git を使うための 『 Git Shell 』 が付いてきます。 基本的なことは簡単にできるようになっているけど 「複雑な作業はコマンドラインからやって」ということだと思います。

今回は入門なので、最小限のことしか説明していません。 それ以外のことは必要な時にぼちぼち覚えていってください。
なお、 GUI から複雑な作業もやりたいという場合は TortiseGit の方がおすすめです。

GitHub のアカウントを作成

GitHub を利用するにあたって、まず必要なのは GitHub のアカウントです。

サイトにアクセスして、[Sign up] から作成します。 github_signup.png


ユーザー名(Username)、メールアドレス(Email Address)、パスワード(Password) を入力し、作成します。

github_usrnew.png

GitHub Desktop のダウンロードとインストール(Windows)

次に GitHub Desktop を用意します。

ダウンロード

GitHub Desktop のサイトからインストーラーをダウンロードします。 github_dtdl.png

インストール

インストーラー(GitHubSetup.exe) を実行するとインストールされます。

インストール中に設定するようなものはなく、そのまま完了します。
そのかわり、初回起動時に GitHub アカウントの設定が要求されます。


[Log in] : ユーザー名(またはメールアドレス) とパスワードを入力します。

github_dtinst1.png


[Configure] : コミット時のユーザー名と公開するメールアドレスを設定します。
そのままでかまいませんが、アカウントのメールアドレスと公開するアドレスを変えたい場合などに変更します。

github_dtinst1.png


[Repositories] : まだローカルにリポジトリーはないので、そのまま [Skip] で終了します

github_dtinst1.png

GitHub Desktop の設定

初回起動時に設定するアカウントと Configure は後から設定画面で変更することもできます。
設定画面はメイン画面右上にある歯車マークの [Options] から開くことができます。
github_dtopt1.png

github_dtopt2.png

これ以外で設定しておいた方がよいのは [Clone path] です。 これは後述する Clone 先のディレクトリーのデフォルトとなるパスです。

リポジトリー(プロジェクト) の作成

リポジトリー(Repository)というのはバージョン管理システムでは「ソースなどを履歴を含めて保存するもの」です。
プログラムなどの開発単位のことをよくプロジェクトと呼びますが、 GitHub ではプロジェクトに対し、一つリポジトリーを用意するので、 リポジトリーがプロジェクト的な意味も持ちます。
GitHub で開発を行うにはこのリポジトリーを用意する必要があります。

GitHub Desktop で作ることもできるのですが、 いくつかファイルを自動生成してくれるので、 リポジトリーの作成は GitHub のサイトで行う方がよいと思います。


作成するには、 GitHub のサイトに行き、ログイン(Sign in) しておきます。 [Start a project] や [New repository] からリポジトリーの作成ページに移動します。
ちなみにここではプロジェクトとリポジトリーが同じ意味で使われていますが、 GitHub では Project をタスク管理機能的なものとして呼ぶこともあります。

github_projnew.png


設定項目を入力し、 [Create repository] を選択するとリポジトリーが作成されます。
github_projprop.png


設定する項目は次の項目です。
No. 項目名 説明
1 Repository name リポジトリーの名称
2 Description リポジトリーの説明
3 Public or Private 非公開(Private)は有料なので、 Public のまま
4 Initialize this repository with a README チェックを入れると README.md ファイルを生成
5 Add .gitignore プログラミング言語の選択
6 Add a license OSS ライセンスの選択



4, 5, 6 の選択で作成時にファイルが自動生成されます。
  • README.md
  • .gitignore
  • LICENSE
GitHub ではこれらのファイルを作成しておくことが推奨されています。

ドキュメント - README.md

GitHub ではドキュメントに Markdown を使うと書きましたが、 プロジェクトのトップページで表示されるドキュメントは README.md をもとに作成されます。

チェックを入れていると、指定したプロジェクトの名前と説明を使った README.md ファイルが生成されます。
# hello-world
Sample project

プログラミング言語の選択 - .gitignore

C 言語のオブジェクトファイル(.o)などソース管理に入れたくないファイルというものがあります。 Git ではそういった無視するファイルは .gitignore に記述します。

無視するファイルの対象は言語ごとに大体決まっています。 開発で使うプログラミング言語を指定すると、言語に合わせた .gitignore が用意されます。

github_projlang.png

OSS ライセンスの選択 - LICENSE

公開しているソースに対するライセンスを指定します。 ライセンスを選択するとその条項が記載された LICENSE ファイルが追加されます。
github_projlicense.png


OSS(オープンソース) ライセンスはソースの自由な再配布や利用などを保証するものです。 これは 必ず何か選択しておきましょう。
創作物というのは公開しているからといって、許可なく自由にしていいいいものではありません。 OSS ライセンスを指定してないのは、逆に再配布や利用を厳しく制限することになってしまいます。


選択するにしてもライセンスには多くの種類があるのですが、太字でリストに載っているものについて簡単に説明します。
MIT ライセンス
「免責事項」、「著作権表示義務」だけの ゆるいライセンスです。
Apache ライセンス
MIT ライセンスの内容に加え、 特許権の許可が明確にされていて、より使う側にやさしくなっています。
ただし、使う場合に 「 Apache ライセンスのコードを使っている」ことの明記も要求されます。
GPL (GNU General Public Licence)
二次生成物 もソースを公開する必要があり、 GPL のライセンスを継承していかなければいけません。 オープンソースを推進したい人向けです。
特にこだわりがないのであれば、 「MIT ライセンス」 を選択しておけばよいのではないかと思います。

GitHub Desktop を使った開発

リポジトリーを作ったら、それに対し開発を進めていくことになります。 ここから GitHub Desktop を使っていきます。


まず、 GitHub のリポジトリーに対応するローカルリポジトリーの準備をします。
その後、次の手順を繰り返して開発することになります。
  1. ファイルの追加や編集
  2. 変更内容の登録
  3. GitHub のリポジトリーに反映

ローカルリポジトリーの準備 - Clone

開発を始めるためには GitHub のサイトで作ったリポジトリーを自分の PC 上に持ってくる必要があります。
複製して新しく作るので、 Git ではこの作業を クローン(Clone) と呼びます。
github_gitclone.png

GitHub Desktop では画面の左にあるリポジトリーのリストから操作したいリポジトリーを選択して使用します。
リストになければ選べないので、まずここに追加する必要があります。
リポジトリーはリストの上部にある [+] から追加します。

github_dt.png


[+] を押すと 3 つのタブが選べるので [Clone] を選択します。
この [Clone] は 「 Git のクローン」と 「 GitHub Desktop のリストへの追加」を一緒に行います。
ちなみに [Add] はリストへの追加のみ行うもので、すでにローカルにクローン済みのリポジトリーがある場合に使います。
[Create] はローカルに新しくリポジトリーを作るものですが、サイトで作った方がいいので、使いません。

[Clone] を選択すると GitHub の自分のリポジトリーがリストで表示されます

github_dtclone.png

選択すると 対象のディレクトリーを聞かれ、そこにクローンされます。
クローン先のディレクトリーにソースファイルがおかれ、履歴などのリポジトリー情報は .git ディレクトリー以下におかれます。
github_dtclone_dir.png

(注) : .git は隠しファイルなので、見えなくなっているかもしれません。

ソースの編集

クローンしたディレクトリーで、ファイルを追加したり、編集したりといった作業を行います。
普通に編集してください。

ソースの変更内容の登録 - Commit

ソースを編集し、適当なタイミングで変更内容をリポジトリーに登録します。 これを コミット(Commit) と呼びます。
コミットはバックアップのように一日一回行うといったものでなく、 タイミングは機能追加したり、バグ修正したりといった意味があるまとまりで行います。
github_gitcommit.png


GitHub Desktop でのコミットは簡単です。 対象リポジトリーを選択し [Changes] を開くと、前回のコミットから変更されたファイルがリストに表示されます。

github_dtcommit.png

ここで変更内容に対するコメントを入力すると [Commit to xxx] が選択できるようになります。
これを選択するか [Enter] キーを押すとコミットされます。

登録した変更内容とコメントは [History] で確認できるようになっています。


なお、 Git では空ディレクトリーの登録は出来ないようになっています。 ディレクトリーを作成しただけでは変更リストには表示されないので注意してください。

GitHub リポジトリーとの同期 - Sync

ここで注意しないといけないのが、 変更内容はコミットではまだローカルのリポジトリーにあるだけということです。
ローカルのリポジトリーの内容を GitHub のリポジトリーに反映する必要があります。
github_gitsync.png


画面右上にある [Sync] を実行することにより GitHub のリポジトリーと同期し、変更が反映されます。

github_dtsync.png

「直接 GitHub のリポジトリーにコミットすれば早いのに」と思うかも知れません。
しかし、直接サイトにコミットするのが集中型で、ローカルにもリポジトリーを用意して連携するのが分散型と呼ばれるバージョン管理システムです。 一人でほそぼそと開発している分にはメリットを感じることはないと思いますが、 そこは我慢して使ってください。

無視するファイルの追加

[Changes] のリストでは変更されたファイルすべてが表示されます。 変更内容をコミットしたくないファイルがある場合、 一時に登録したくないだけならチェックを外しておきます。

言語の選択 のところでも書きましたが、ソース管理の対象にしたくないファイルというものもあります。 そういったファイルは毎回変更のリストにでてくると邪魔です。
このファイルを .gitignore に追加すると無視されるようになります。 これは右クリックのメニューから行うことができます。

github_dtignore.png


メニュー 無視対象
[Ignore file] 選択ファイル(hello-world.suo)
[Ignore file all .xxx files] 選択ファイルと同じ拡張子のファイルすべて(*.suo)



ソース管理する対象の方針ですが、基本的に ソースから生成されるファイルは管理の対象外 にします。
これは生成できるものを登録するのは無駄ですし、むしろ不整合を起こす危険があるためです。

無視するディレクトリーの追加

C++ での Relese, Debug ディレクトリーや JavaScript での node_modules など "ディレクトリー内をまとめて管理対象外" としたい時があります。
実はこの作業は GitHub Desktop からはできません。 しかし、できないとリストにずらっとでて邪魔になので、おまけで説明しておきます。


ディレクトリーを無視したい場合は .gitignore に直接追加します。このファイルは無視対象が一行ずつ記述されたテキストファイルです。
例えば Relese, Debug という名前のディレクトリーを対象外としたい場合は以下のように記述します。
  :
*.out
*.app
  :
*.out
*.app
Relese
Debug
 
このページをシェア
アクセスカウンター
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

11月 | 2016年12月 | 01月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。