マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Python

【OSS情報アーカイブ】Python

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

コンテンツ

「Python」とは

「Python」基本情報

■概要

Python(パイソン)とは、パワフルなオープンソースプログラミング言語です。インタプリタ、動的型付け、純粋オブジェクト指向、インデント強制ルールなどの特徴を持つスクリプト言語です。

■基本説明

Pythonは、汎用の高水準プログラミング言語として設計されています。

Pythonは、その言語発展経緯/文法上特徴から、初心者にも扱いやすいシンプルな言語と言われています。可読性に優れています。

さまざまな領域に対応する大規模な標準ライブラリを提供しています。ライブラリと一体となったPythonは、単なる言語ではなく、フレームワークレベルの力を持っています。

豊富なライブラリにより、Webアプリ/GUIアプリの作成も可能です。また、理工学、統計解析など、幅広い領域で使用されています。

「Perl」や「Ruby」に比べて大規模プログラムを作りやすいという利点があります。小さなスクリプトを大きなプログラムに拡張しやすいという特徴もあります。

Pythonは、複数のプログラミングパラダイムに対応しています。オブジェクト指向型、命令型、手続き型、関数型などのスタイルでコーディングできます。

■経緯

Pythonは、オランダ人の「Guido van Rossum」氏が開発しました。

「Python」の名前は、イギリスのテレビ局BBCが製作したコメディ番組『空飛ぶモンティ・パイソン』に由来しています。

「Python」を直訳した「ニシキヘビ」が、Python言語のマスコット/アイコンとして使われています。

■オフィシャルサイト情報

オフィシャルサイト

→Python

ライセンス情報

Pythonのライセンスは「Python Software Foundation License」です。

詳細について、こちらを参照ください。
→Python →History and License

ダウンロード

→Python →Downloads

導入事例

GoogleやFacebookで使われているという実績があります。YoutubeやDropboxもPythonで記述されています。開発者からの人気は高く、世界レベルでランキング上位にあり、幅広く利用されています。

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Ruby」「PHP」「Perl」など。

「Python」の主な特徴

■スクリプト言語

Pythonはスクリプト言語であり、コンパイルを必要としないプログラミング言語です。「軽量プログラミング言語」ともいわれ、記述が容易、コンパイル不要などの特徴があります。

一方、実行速度に難があるとされることもあります。

■パワフル/高速

Pythonは、高度に最適化されたバイトコードコンパイラ/ライブラリにより、多くのアプリケーションで十分な速度で実行することができます。

■連携性

Pythonは、Java/.NETなどの、他のフレームワークオブジェクトと組み合わせることができます。

■拡張性

C/C++で拡張モジュールを作成したり、既存のコードをSWIGやBoost.Pythonを使ってラップして使用することができます。

■インデント強制ルール

Pythonは、Javaのように「 { 」(中カッコ)は使用しません。Rubyのように「end」も使用しません。

Python独特な大きな特徴として、「インデント(字下げ)強制ルール」があります。コーディングルールとして、ブロック構造はインデントで表現します。

コーディング自由度が制限されるため、誰が書いても同じようなコードになります。簡潔に、より少ないコード行数でプログラムを表現でき、とてもクリーンで読みやすいコードになります。

■クロスプラットフォーム

Windows、Linux/Unix、MacOSなど多くのメジャーなOSで動作させることができます。

■学習しやすい

ドキュメントが豊富に存在しています。

■pip / PyPI(Python Package Index)

「pip」とは、Pythonで書かれたパッケージソフトウェア管理システムです。また、PyPI(Python Package Index)というリポジトリがあり、非常に多くのライブラリ(パッケージ)が登録されています。

■バージョン体系

Pythonのバージョンは、旧型「2.x系」と新型「3.0系」があります。後方互換性は保証されていません。

■その他のポイント

・多くの基本的な機能は標準搭載
・広範囲に及ぶ標準ライブラリとサードパーティモジュール
・完全なモジュール化サポート(パッケージ階層化もサポート)
・アプリケーションに組み込んでスクリプトインタフェースとして利用することが可能
・マルチパラダイム
・動的型付け
・関数型言語
・直感的なオブジェクト指向
・WSGI(Web Server Gateway Interface)によるインターフェース統一化
・インタラクティブシェル
・ガベージコレクション
・例外ベースのエラーハンドリング
・ドキュメンテーションスクリプト機能
・過去のプログラム言語の便利な考え方を多数取り入れている
・科学演算や機械学習で利用可能なライブラリが多数用意されている など

Python参考情報①Pythonのダウンロードとインストール

Pythonダウンロード/インストール方法についてまとめられているサイトについて、対象環境ごとに紹介します。

Pythonは、「2.x」系と「3.x」系などのように、系統ごとに分かれているため、適切なバージョンをインストールする必要があります。

■【Linux編】最新版Pythonをソースからコンパイルする方法

概要

ほとんどの Linuxディストリビューションにおいて、Pythonはプリインストールされています。

最新版Pythonをソースから簡単にコンパイルする方法について解説されています。

解説テーマ

2.1. 最新バージョンの Python の取得とインストール
2.2. Python のビルド
2.3. Python に関係するパスとファイル
2.4. その他
2.5. エディタと IDE

ページリンク

→Python →ドキュメント →Python のセットアップと利用 →2. Unix プラットフォームで Python を使う

■【Windows編】インストーラーを使用した「Python 3.5.2」のインストール

概要

「Python 3.5.2」のWindows環境へのダウンロード/インストール方法について解説しています。

インストーラーを使用したインストール方法です。

解説テーマ

・Pythonダウンロード
・Pythonインストール
・ファイル構成

ページリンク

→PythonWeb →Python 3.5.2のダウンロードとインストール

■【Windows編】GUIインストーラーなしでインストールする方法

概要

Python.orgのドキュメントです。

PythonをWindowsで使用する場合に、知っておくべき「Windows 固有の動作」概要について解説しています。

「インストーラのGUIなしでインストールする」方法などの解説もあります。

解説テーマ

3.1. Python のインストール
3.2. 別のバンドル
3.3. Python を構成する
3.4. Windows の Python ランチャ
3.5. モジュールの検索
3.6. 追加のモジュール
3.7. Windows 上で Python をコンパイルする
3.8. Python 埋め込みのための配布
3.9. その他のリソース

ページリンク

→Python →ドキュメント →Python のセットアップと利用 →3. Windows で Python を使う

■【Mac編】パッケージマネージャー「Homebrew」でのPython環境構築法

概要

「macOS Sierra 10.12.3」に、パッケージマネージャー「Homebrew」を利用してPythonをインストールして、機械学習を学ぶための環境構築手順について解説されています。

解説テーマ

・ローカル環境(Mac)
・Homebrewのインストール
・Python3のインストール
・Pythonのバージョンを確認
・python3でよく使うライブラリをインストール
・機械学習で使用するライブラリのインストール
・おわりに

ページリンク

→Qiita →【決定版】MacでPythonを使って『機械学習』を学ぶための環境構築

Python参考情報②Pythonのチュートリアル(入門編)

Pythonのチュートリアルに関する情報についてまとめられているサイトを紹介します。

■Python.orgのPythonチュートリアル

概要

Pythonの「特筆すべき機能」「持ち味」「スタイル」などを習得できるチュートリアルとしてまとめられています。

解説テーマ

1. やる気を高めよう
2. Python インタプリタを使う
3. 形式ばらない Python の紹介
4. その他の制御フローツール
5. データ構造
6. モジュール (module)
7. 入力と出力
8. エラーと例外
9. クラス
10. 標準ライブラリミニツアー
11. 標準ライブラリミニツアー — その 2
12. 仮想環境とパッケージ
13. さあ何を?
14. 対話入力編集と履歴置換
15. 浮動小数点演算、その問題と制限
16. 付録

ページリンク

→ Python →ドキュメント →Python チュートリアル

■Pythonチュートリアル厳選5選

概要

Pythonを学ぶにあたり、厳選したオススメのチュートリアルを紹介しています。

それぞれに「対応バージョン」「対象レベル」「概要」「こんな人にオススメ」の解説があり、参考にできます。

解説テーマ

前提:Python2とPython3の違いについて
1. ドットインストール Python入門
2. Python チュートリアル(公式)
3. Python入門 : 4日間コース社内トレーニング
4. Python-izm Python入門から応用までの学習サイト
5. php プログラマのための Python チュートリアル
まとめ

ページリンク

→Samurai Engineer School →【完全保存版】Pythonチュートリアル厳選5選

■機械学習初心者用 Python学習コンテンツ/ライブラリ20選

概要

「機械学習」「Pythonプログラミング」の入門に適している「役に立つコンテンツ」と「機械学習によく使われているPythonライブラリ」などを20件紹介しています。

解説テーマ

・機械学習入門
・Pythonプログラミングが学べるコンテンツ
・機械学習に役立つPythonライブラリ
・まとめ

ページリンク

→paiza開発日誌 →機械学習初心者が、素早く学べるコンテンツとライブラリ20選(Python編)

■PHPプログラマのためのPythonチュートリアル

概要

PHPプログラミング経験がある人に向けたPythonチュートリアルです。

PHPプログラマにとって「注意すべき部分」「イディオム」などを紹介し、チュートリアルを補強する内容としてまとめられています。

解説テーマ

・Python のメリット
・インストール
・Python の基本
・数値型と bool, None
・数値型
・文字列
・コンテナ
・関数
・クラス
・モジュール
・便利なサードパーティーライブラリ

ページリンク

→Read the Docs →php プログラマのための Python チュートリアル

Python参考情報③Pythonバージョン確認/切り替え方法

Python参考情報③Pythonバージョン確認/切り替え方法

「複数バージョンのPythonを切り替えて使用する方法」に関する情報についてまとめられているサイトを紹介します。

■Python用バージョン管理ツール「pyenv」

概要

「pyenv」を用いたPythonバージョンの使い分け方法についてまとめられています。

解説テーマ

・pyenvとは
・pyenvをインストールする
・pyenvを使ってみる
・site-packagesの場所
・参考資料
・最後に

ページリンク

→YoheiM.NET →[Python] pyenvを使ってPythonの複数のバージョンを使い分ける

■Pythonディストリビューション「Anaconda」のパッケージマネージャー「conda」

概要

Pythonディストリビューション「Anaconda」に含まれるパッケージマネージャー「conda」を使用するバージョン切り替え方法について解説されています。

「Anacondaを使用したインストール」や「condaの使用方法」などについてまとめられています

解説テーマ

・Anaconda のインストール
・Anaconda とは …
・Miniconda とは …
・conda の簡単な使い方
・anaconda-client の簡単な使い方

ページリンク

→Qiita →Anaconda で Python 環境をインストールする

■Python用独立環境構築モジュール「virtualenv」

概要

環境構築モジュール「virtualenv」について解説しています。

開発用サンドボックスを作成し、Pythonバイナリやパッケージを分離できます。

解説テーマ

・virtualenvとは?
・準備
・virtualenvインストール
・virtualenv使用
・virtualenvwrapperインストール
・virtualenv+virtualenvwrapperの使用

ページリンク

→Hornet →virtualenvでpython環境を管理

■Pythonインストールマネージャー「pythonz」

概要

Pythonインストールマネージャー「pythonz」のGitHubページです。

「インストール方法」や「使用方法」などについて解説されています。

解説テーマ

・Overview
・Installation
・For Systemwide (Multi-User) installation
・Before installing Python versions via pythonz
・Usage
・DTrace support

ページリンク

→GitHub →saghul/pythonz →pythonz: a Python installation manager

■統合開発ツール「Visual Studio」でのPythonバージョン切り替え方法

概要

統合開発ツール「Visual Studio」でのPython環境管理方法について参照できます。

解説テーマ

・Python インタープリターの選択とインストール
・Visual Studio での Python 環境の管理
・グローバル環境
・プロジェクト固有環境
・仮想環境
・必要なパッケージの管理

ページリンク

→Microsoft →Docs →Visual Studio →ドキュメント →Python →Python 環境

Python参考情報④Pythonのマルチスレッド処理

Python参考情報④Pythonのマルチスレッド処理

「Pythonのマルチスレッド処理」に関する情報についてまとめられているサイトを紹介します。

■Pythonのマルチスレッド解説(前編)

概要

Pythonのマルチスレッド解説(前編)です。

「マルチスレッドの概念」「速度の測定方法」「マルチスレッドの簡単な利用方法」などについて、分かりやすく解説されています。

解説テーマ

・プログラム速度の測定方法
・さまざまな処理の速度と遅延
・マルチスレッドの基本
・マルチスレッドの限界
・Pythonでのマルチスレッドの利用
・スレッドが終了するまで待機する方法

ページリンク

→マイナビニュース →【連載】Pythonで学ぶ 基礎からのプログラミング入門 →32 マルチスレッド処理を理解しよう(前編)

■Pythonのマルチスレッド解説(後編)

概要

Pythonのマルチスレッド解説(後編)です。

「継承によるマルチスレッド向けクラス作成」「ロックを使用したスレッド間同期」「マルチスレッド以外の並列化手法」などについて解説されています。

解説テーマ

・継承によるマルチスレッドの実現
・スレッドの処理結果の取得
・マルチスレッド特有の問題
・マルチスレッド以外の並列化方法

ページリンク

→マイナビニュース →【連載】Pythonで学ぶ 基礎からのプログラミング入門 →33 マルチスレッド処理を理解しよう(後編)

■Pythonの「マルチコア」「マルチスレッド」の実装

概要

「Python による並列処理」「マルチコア」「マルチスレッド」などの実装方法についてまとめられています。

解説テーマ

・Python による並列処理
・マルチコア
・マルチスレッド
・まとめ

ページリンク

→Tech見習い →Python で並行処理(マルチコア、マルチスレッド)を実装する

■Pythonの「multiprocessing」モジュールでの並列処理実装

概要

Pythonの「multiprocessing」モジュールを利用して、プロセスを複数立ち上げて、処理を並列化させる方法についてまとめられています。

解説テーマ

・Pythonで並列処理を実装するには
・準備
・サブプロセスを作成して、マルチプロセスに処理を実行する
・キューを用いて、プロセス間でデータのやり取りを行う
・パイプを用いて、プロセス間でデータのやり取りを行う
・共有メモリを用いて、プロセス間でデータを共有する
・マネージャーを用いて、プロセス間でデータを共有する
・Lockを用いて、実行順を制御する
・プロセスプールを使って、サブプロセスを使い回す
・参考資料
・最後に

ページリンク

→YoheiM.NET →[Python] マルチプロセスな処理を実装して、処理を高速化する

■Pythonマルチスレッド実装において気をつけるべきこと「グローバルインタプリタロック(GIL)」

概要

マルチスレッドが意図しない挙動になった原因から、「Pythonマルチスレッド実装において気をつけるべきこと」についてまとめられています。

解説テーマ

・マルチスレッドで問題が発生する条件
・問題の原因を探る
・挙動の原因はPythonのグローバルインタプリタロック(GIL)に
・おわりに

ページリンク

→凡人のブログ →Pythonのマルチスレッドで気を付けるべきこと

Python参考情報⑤PythonのWebアプリケーションフレームワーク

Python参考情報⑤PythonのWebアプリケーションフレームワーク

「PythonのWebアプリケーションフレームワーク」に関する情報についてまとめられているサイトを紹介します。

■Webフレームワーク徹底比較—「Bottle」「Flask」「Django」

概要

プログラミング入門者から中級者の方を対象として、Pythonフレームワークの選び方とオススメのフレームワークについて解説しています。

解説テーマ

1 そもそもフレームワークって?
2 Pythonフレームワークの種類
3 Pythonフレームワークの最近のトレンド
4 Pythonフレームワークおすすめ3つ
5 迷ったときは
6 まとめ

ページリンク

→侍エンジニア塾 →2017年大注目のPython!WEBフレームワーク3つを徹底比較

■Pythonフレームワーク—7本比較、需要/案件/求人例

概要

Pythonの「代表的なフレームワーク比較」と「今後の需要(案件/求人例)」について紹介しています。

それぞれのフレームワークで、「特徴」「開発効率」「メンテナンス性能」の項目について解説されています。

解説テーマ

・Pythonフレームワークのメリットと選ぶ基準
・Pythonフレームワーク比較
・Pythonフレームワークの需要と案件・求人例
・まとめ

ページリンク

→フリエン →【2017年版】Pythonのフレームワーク比較と今後の需要

■PythonのオールインWebフレームワーク「Django」解説

概要

PythonのWebフレームワークとして注目度が高い「Django」の紹介です。

「優れている点」「特徴」などについて参照できます。

解説テーマ

・はじめに
・Django(ジャンゴ)とは
・なぜ、Djangoなのか?
・特徴
・Djangoで作る最適なアプリ
・まとめ

ページリンク

→侍エンジニア塾 →【5分でわかる】Python、WEBフレームワーク「Django」とは

■Python軽量Webフレームワーク「Flask」の使い方

概要

「Django」と比較して、学習コストが低く、シンプルに実装できる「Flask」の使い方について紹介しています。

セットアップを行い、簡単なWebアプリを作成しています。

解説テーマ

1 Falskでできること
2 Flaskのセットアップ
3 Flaskを使ってみる
4 リクエストの処理
5 テンプレートを使ってページを描画する
6 各種設定の仕方
7 jsonレスポンスを返す

ページリンク

→ぱーくん plus idea →はじめてのpython軽量Webフレームワーク【Flask】の使い方

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】 サイバー犯罪者向けの生成AI「 WormGPT 」とは?🐛

デジタル寺田の3分用語解説

2024.12.11

【デジタル寺田の3分用語解説】 サイバー犯罪者向けの生成AI「 WormGPT 」とは?🐛

「 WormGPT 」は、サイバー犯罪者向けに開発された生成AIツールで、セキュリティや倫理的な制限がなく、「フィッシングメール作成」や「マルウェア開発」を簡易化します。「As-a-Service」モデルで提供され、アクセスが容易で、犯罪の精度と規模を向上させる脅威となっています。

【デジタル寺田の3分用語解説】「 6G 」とは?「5G」とどう違うのか📶

デジタル寺田の3分用語解説

2024.12.11

【デジタル寺田の3分用語解説】「 6G 」とは?「5G」とどう違うのか📶

「 6G 」は、2030年商用化を目指す次世代通信技術で、「5G」の数十倍~100倍の速度を実現。エネルギー効率やセキュリティが向上し、「メタバース」「医療」「教育」など多分野で活用が期待されており、私たちの生活や社会の在り方を大きく変革する可能性を秘めている。

【デジタル寺田の3分用語解説】 2025年「 リスキリング 」の課題📚

デジタル寺田の3分用語解説

2024.12.11

【デジタル寺田の3分用語解説】 2025年「 リスキリング 」の課題📚

2025年の リスキリング 課題は、「企業の人材投資不足」「長時間労働」「自己学習時間の短さ」「職能資格制度」が妨げとなり、「スキル不足を招く悪循環」が指摘されています。企業が未来の競争力を得る鍵であり、AIやテクノロジー進化への対応が急務です。社会全体での意識改革も必要となっています。