序章


特にアプリケーション開発の分野でPythonを使用する場合、さまざまな場所やオープンソースコードで頻繁に言及される特定のツールがあります。 非常に一般的に使用されていますが、残念ながら、各ステップを順を追って説明する優れたマニュアルを入手するのが難しい場合があります。これは、このような重要で必要なツールに精通するために絶対に不可欠です。

このDigitalOceanの記事では、基本的なことだけでなく、一般的なPythonツールやアイテムの背後にあるロジックについても説明し、実際のシナリオでそれらを使用することを目指しています。 まず、いくつかの一般的なライブラリのダウンロードとインストール、仮想環境の設定と操作(virtualenvを使用)、および独自のアプリケーションの開発と本番用のパッケージの管理から始めます。

この記事は、初心者だけでなく、より深い知識を得ようとしている人を対象としています。 詳細をご覧になりたい場合は、下のコメントセクションでお気軽にご提案ください。

CentOS上のPython


CentOS / RHELシステムを使用している場合は、オペレーティングシステムに付属しているデフォルトのPythonインタープリターの使用を控える必要があることに注意してください。 代わりに、Pythonを自分でインストールすることを選択する必要があります。

まだこれを行っておらず、その方法を知りたい場合は、開始する前に、チュートリアル CentOS6.4でPython2.7.6および3.3.3をセットアップする方法を参照してください。

同様に、カスタムPythonインストールを使用してCentOSにpipおよびvirtualenvをインストールするには、その記事の指示に従うことができます。

Pythonとパッケージ


Pythonアプリケーションは単一ファイルで作成できますが、通常、一連の関数、オブジェクト(クラス)、便利なツール、そしてもちろん、複数ファイルに分散する変数で構成されます。 )、モジュールの中に配置しました。 これらのモジュールは一緒になって、パッケージと呼ばれるものを構成します。

パッケージをインストールする従来の方法では、最初にパッケージを見つけてからダウンロードします。 実際にははPythonの多くのものと同じようにですが、完璧ではありませんので、柔らかくシンプルに聞こえます。

distutils モジュールを使用してファイルの準備ができて解凍されたら、setup.pyを呼び出してインストールできます。

パッケージのインストール例:

 # Example: cd [package name]
 cd a_package
 python setup.py install

distutils (配布ユーティリティ)は、コードのパッケージ化と配布に使用されるツールセットです。 デフォルトでPythonに同梱されています(つまり 標準ライブラリに含まれています)。

上で説明した手順は単純ですが、インストールから抽象化された課題がプロセスの他の場所に存在する場合は役に立ちません。それらの検索と管理。 ここで、ツールを介したパッケージ管理が役立ちます。次のようないくつかの利点があります。

  • アンインストール(例: pip uninstall package_x)、
  • バージョン管理(例: pip install django==x)、
  • そして自動依存関係管理(パッケージは他のものに依存する可能性があるため)。

パッケージ管理


Pythonのパッケージは、ツール、ライブラリ、フレームワーク、およびアプリケーションです。 言語の人気と美しさを考えると、独自のプロジェクトに利用できる何万ものパッケージが利用可能です。

パッケージ管理ツール


最も一般的な2つのPythonパッケージマネージャーは、pipeasy_installです。 どちらも、次のタスクでユーザーを支援することを目的としています。

  • ダウンロード、インストール、アンインストール
  • 建物
  • Pythonパッケージなどの管理

それらは両方とも外部から同じことをしているように見えるかもしれません、そして共通のライブラリsetuptoolsへのそれらの共同依存はこの概念を増やします。

ただし、この場合、違いを生むのは目から隠されているものであり、その多くも同様です。

pipとeasy_install


タスク用に作成された最初のツールはeasy_installでした。 すべてを手動で行うのに比べて、使用するのは安心で楽しいことでしたが、時間の経過とともに、特定の側面で問題が発生することが判明しました。 これにより、別のパッケージマネージャーであるpipの開発の根拠が生まれました。

pip (プロジェクト自体で定義)は easy_install の代わりになり、前任者に比べて次のような多くの利点があります。

  • インストールする前にすべてをダウンロードする
  • プロセス中に有用なフィードバックを提供する
  • 実行されているアクションの履歴を保持する
  • Pythonの伝統に従って有用なエラーメッセージを提供する
  • virtualenv を補完し、veryとうまく連携します

pip の詳細については、こちらをクリックして、PyPIパッケージインデックスにある概要を読むことを検討してください。

徹底的なpipハウツー


このセクションでは、 pip に必要な依存関係を取得し、最新のビルドをインストールした後、インストールアンインストールなどのコア機能のウォークスルーについて説明します。 フリーズおよび管理要件

pip はいつ使用しますか?

イントロダクションで約束したように、私たちはあなたに実際のシナリオの例を与えることを目指しています。

あなたが小さなアプリケーションの開発に取り組んでいると想像してみてください。 ロードマップを設定し、すべてが順調に進んでいます。 次に、アプリケーションに含めた場合に非常に役立つライブラリ(またはモジュール)を見つけます。 説明したように、従来の方法でダウンロードできます。 ただし、処理する必要のあるパッケージが1つだけでなく、3つ、4つ、または20つになると、このプロセスは面倒になります。 それらの管理を含める(例: 更新、アンインストール、置換、別のバージョンの使用)、パッケージマネージャーである pip を使用して冗長化された、対処する必要のある問題を確認できます。

pipをインストールしています


pip をインストールするには、最初にその依存関係を処理する必要があります。 でも心配しないでください、それはとても簡単です。

setuptools

上で説明したように、 pip の依存関係の1つは、setuptoolsライブラリです。 これは、Pythonの配布ユーティリティツールセット distutils の(標準)機能に基づいています。 distilsがデフォルトで提供されていることを考えると、必要なのはsetuptoolsだけです。

curlを使用して、setuptoolsのセットアップファイルを安全にダウンロードします。 cURL は、さまざまなプロトコル(つまり、 HTTPなどのアプリケーション間のデータ交換のための共通言語)。 ソースからのSSL証明書を検証し、データをPythonインタープリターに渡します。

Pythonインタープリターが実行するこれらのセットアップファイルは、システムに最新の安定バージョンをセットアップするときに、インストールプロセスを自動化します。

次のコマンドを実行します。

 curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -

このインストールにより、システム全体でpipをグローバルに使用できるようになります。 ただし、これは他のパッケージをインストールするための推奨される方法ではありません。 推奨されるのは、常に自己完結型のPython環境virtualenvを使用することです。 これについては次のセクションで説明します。

注:ダウンロードを続行するには、スーパーユーザー権限を明示的に取得する必要がある場合があります。 その場合は、以下の使用を検討してください。

 curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | sudo python -

単一の依存関係をインストールした後、pipのダウンロードとセットアップを続行できます。

セットアップファイルを安全にダウンロードしてインストールするために、再びcurlを使用します。

次のコマンドを実行します。

 curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -

pipのデフォルトのインストールフォルダは次の場所にあります。

/usr/local/bin

フルパスを記載せずに使用するには、PATHに追加する必要があります。

PATH の更新:

 export PATH="/usr/local/bin:$PATH"

この手順を完了すると、pipを使用する準備が整います。

pipを使用する


pip の使用は本当に楽しく、頭痛の種がないと見なすことができます。 過去に非常に不必要な問題に対処したことがあり、その理由さえ理解していない場合は、pipによって問題を最小限に抑えることができます。

pipを使用したパッケージのインストール


pipは多くのことを実行できますが、最も頻繁に使用される機能はパッケージのインストールであると言っても間違いではありません。 このジョブを処理する方法はいくつかあります。

パッケージの検索とインストール:

 # Example: pip install [package name]
 # Let's install the excellent *requests* library
 pip install requests

特定のバージョンの検索とインストール:

 # Example: pip install [package name]==[version]
 # Let's install version 2.0.0. of requests
 pip install requests==2.0.0

URLまたはVCSリポジトリからのインストール:

 # Example: pip install [url]
 # Let's install virtualenv
 pip install https://github.com/pypa/virtualenv/tarball/1.9.X

virtualenv 内へのインストール:

 # Example: pip install [env name] [package name]
 # This will either install inside an environment, or create one
 # Let's install requests inside a virtualenv called *venv*
 pip install -E venv requests

pip を使用したパッケージのアンインストール:


pip の2番目に一般的な機能は、おそらくパッケージのアンインストールです。

パッケージのアンインストール:

 # Example: pip uninstall [package name]
 # Let's remove requests library
 pip uninstall requests 

pipを使用したパッケージのアップグレード


新しいバージョンのアプリケーションをインストールするためにアンインストールすることを考えている場合は、アップグレードを試すことができます。

パッケージのアップグレード:

 # Example: pip install --upgrade [package name]
 # Let's upgrade requests library
 pip install --upgrade requests

pipでパッケージを検索する


パッケージを削除またはアップグレードすることを決定する前に、まずパッケージを検索する必要があると感じるかもしれません。

パッケージの検索:

 # Example: pip search [package name]
 # Let's find all django packages
 # This might take a while (there's tonnes of them!)
 pip search django

pipを使用してインストール済みパッケージのリストを作成する


pipの最も真に例外的で命を救う機能の1つは、インストールされているパッケージのリスト(「フリーズ」)を簡単に作成できることです。 これは、要件とも呼ばれます。 Python環境(仮想環境かグローバル環境か)に応じて、 pip は、1つのコマンドでインストールされたすべてのパッケージをリストするファイルを作成します。

新しいリストの作成(「フリーズ」):

注:このコマンドは、現在の作業ディレクトリにファイルを出力します。

 # Example: pip freeze > [file name.ext]
 # Let's list all the packages currently installed
 pip freeze > package_list.txt

テンプレートの上にリストを作成(「フリーズ」)します。

注:このコマンドは、現在の作業ディレクトリにファイルを出力します。

 # Example: pip freeze -r [existing file.ext] > [filename.ext]
 # Let's append new packages installed after the last freeze
 pip freeze package_list.txt > package_list_new.txt

*pipを使用してリストからすべてのパッケージをインストールする


アプリケーションで作業している場合(できれば仮想環境内で)、すべての依存関係(必須パッケージ)がそこにインストールされます。 freeze を使用してそれらのリストを抽出した後、installを使用してそれらを再度インストールできます。

リストからすべてのパッケージをインストールする(「フリーズ」):

 # Example: pip install -r [file name.ext]
 # Let's install back all the packages from the previous example
 pip install -r package_list_new.txt

徹底的なvirtualenvハウツー


virtualenv とは何か、そしてそれが役立つ状況を定義することから始めましょう。

virtualenv:

Pythonの世界では、 environment は、Pythonプロジェクト(アプリケーション)が組織化された分離された方法で実行するために必要なすべてのものを含むフォルダー(ディレクトリ)です。 開始されると、独自の pip とともに、独自のPythonインタープリター(作成に使用されたもののコピー)が自動的に付属します。

virtualenvが解決する問題はいくつかあります。

  • Pythonプロジェクト用の新鮮で隔離された環境の作成
  • admin/sudo権限を必要とせずにパッケージをダウンロードできる
  • アプリケーションを簡単にパッケージ化
  • pipで作成された単一のプロジェクトに属する依存関係のリストを作成する
  • pip で作成された要件ファイルを使用して、依存関係を簡単に回復できます。
  • システム間での移植性への道を与える

virtualenv を使用することは、忙しいかもしれない数に関係なく、Pythonプロジェクトを操作するための推奨される方法です。 それは非常に使いやすく、使い捨てで持っている優れたツールです。 pip と組み合わせると、本当に驚異的です。

システムのvirtualenvのインストールから始めます。

virtualenvのインストール


virtualenv をインストールするには、pipを呼び出してヘルプを求めます。 Pythonインタープリターを実行するためのグローバルに利用可能なパッケージとしてインストールします。

アプリケーションを入手するには2つの方法があります。 取得できるバージョンは、選択したバージョンによって異なります。

最も簡単な方法は、 pip を使用して検索、ダウンロード、およびインストールすることです。 これはではなく最新の安定バージョンを提供する可能性があります。

pipを使用してvirtualenvをダウンロードする:

 # Example: [sudo] pip install virtualenv
 sudo pip install virtualenv

curl を使用して利用可能な最新のものをダウンロードする:

virtualenvの最新リリースは1.11.Xです。

 # Example: [sudo] pip install [github repo]/[version]
 sudo pip install https://github.com/pypa/virtualenv/tarball/1.1.X

virtualenvを使用する


このツールの使用は、Pythonインタープリターとpipのコピーを含むフォルダーを作成するためにツールを取得することで構成されます。 その後、それを操作するために、そのインタプリタの場所を指定するか、activateそれを指定する必要があります。

仮想環境内でインタープリターを使用してインストールするすべてのアプリケーションは、その場所内に配置されます。

pip を使用してそれらのリストを作成すると、フォルダー内のものだけがファイルにコンパイルされます。

覚えておいてください:ある環境での作業が終了したら、別の環境に切り替える前、またはグローバルにインストールされた環境で作業する前に、必ずdeactivateする必要があります。

仮想環境(virtualenv)の作成/開始


実行に使用したのと同じインタープリターを使用して環境を作成します。

 # Example: virtualenv [folder (env.) name]
 # Let's create an environment called *my_app*
 virtualenv my_app

カスタムPythonインタープリターを使用した環境の作成:

 # Example: virtualenv --python=[loc/to/python/] [env. name]
 virtualenv --python=/opt/python-3.3/bin/python my_app

仮想環境のアクティブ化

 # Example: source [env. name]/bin/activate
 # Let's activate the Python environment we just created
 source my_app/bin/activate

仮想環境をアクティブ化せずに操作する


さまざまな理由から、使用する前に環境をアクティブ化しないことを選択する場合があります。 これにより、実行するコマンドの柔軟性が高まりますが、毎回正しいインタープリターをターゲットにする必要があります。

 # Example: [env. name]/bin/python [arguments]
 my_app/bin/python python_script.py

アクティベーションせずに環境内でpipインストールを使用する

 # Example: [env. name]/bin/pip [command] [arguements]
 # Let's install requests library without activating the env.
 my_app/bin/pip install requests

仮想環境の非アクティブ化:

 # Example: deactivate
 # Let's deactivate the environment from earlier
 deactivate 

投稿者: https ://twitter.com/ostezer