最も完全なピップガイドを[ターン]、あなたは50%に使用されていない可能性があります
すべてのPythonの開発者は、多くの高レベルの言語がなく、原因より完全な生態のPythonに、簡単に外に使用する、シンプルな文法に加えて、前面に来ることができるPythonはとても人気があり、認識している、Pythonの数万のがありますPythonベースの愛好家は、パッケージの発展に資するサードパーティ製のさまざまなツールをパッケージ化して喜んでいます。
私たちは、基本的なニーズを満たすために最速のスピードにプロジェクトの開発を使用することができ、常にではありませんでしたというホイールを繰り返し作成します。
Pythonは、それが数十サードパーティ製のパッケージの何千ものを生産している時に、過去28年間、現在に1991から生まれた、各パッケージは常に更新され、より多くのバージョンが存在します。
あなたは、複雑なプロジェクト環境にある場合、有効な依存関係管理プログラムが存在しない場合は、プロジェクトのメンテナンスが大きな問題となります。
ピップは、ほとんどの開発者の目には、公式の推奨パッケージ管理ツールで、ピップほとんどPythonの標準。
もちろん、他のパッケージ管理ツールがあります
-
distutilsの唯一のパッケージとインストールのため、厳密に言えば、ないパッケージ管理ツール:
-
setuptoolsの:バージョンはパッケージの依存関係管理の導入、より多くの機能を提供する、のdistutilsを拡張強化のdistutils、easy_installをそれは、コマンドラインツール、導入卵のファイル形式であるということです。
-
Pipenv:依存関係管理(PIP)と仮想環境の管理(virtualenvの)ツールのセット
-
他のがありますが、ここではそれらは表示されません。
今日の主人公はピップですが、私はあなたが不慣れではないと確信しています。しかし、私は多くの人々を信じて、私は公式の文書へのアクセスを持っている、いくつかの一般的な使用法に精通し、かつ他のいくつかの低周波数および実用化のためのものですが、少しはこの2日間について知られている、これらの使用は整理、ネットワークはする必要があります全体の比較のプレゼンテーション。
1.お問い合わせパッケージ
現在の環境でクエリのすべてのインストール済みパッケージ
$ pip list
クエリは、PyPIの名前を含むパッケージ
$ pip search pkg
クエリ環境は、現在のパッケージをアップグレードします
$ pip list --outdated
のパッケージのクエリの詳細
$ pip show pkg
2.ダウンロードパッケージ
ローカルへのインストールパッケージのダウンロードパッケージなし
$ pip download --destination-directory /local/wheels -r requirements.txt
ダウンロードされた、私は、恐怖設置するには、は、PyPIからインストールせずにパッケージをインストールするディレクトリを指定することができます。
$ pip install --no-index --find-links=/local/wheels -r requirements.txt
もちろん、あなたも独自のビルドファイル世代ホイールからパッケージをダウンロードすることができます
$ pip install wheel
$ pip wheel --wheel-dir=/local/wheels -r requirements.txt
パッケージをインストールします3。
使用して、pip install <pkg>
簡単には、PyPI検索からダウンロードされ、Pythonパッケージをインストールすることができます。
以下
$ pip install requests
これは、インストールパッケージの基本的な形式である、我々はまた、異なる効果を達成するために多くのパラメータを追加することができます。
PyPIからインストールせずにローカルインストールから3.1、
# 前提你得保证你已经下载 pkg 包到 /local/wheels 目录下
$ pip install --no-index --find-links=/local/wheels pkg
3.2限定版のパッケージのインストール
以下は、パッケージがバインドされた単一のpython 3つのバージョンです
# 所安装的包的版本为 2.1.2
$ pip install pkg==2.1.2
# 所安装的包必须大于等于 2.1.2
$ pip install pkg>=2.1.2
# 所安装的包必须小于等于 2.1.2
$ pip install pkg<=2.1.2
次のコマンドは、Python環境の全体のパックのバージョンを管理/制御するために使用されています
# 导出依赖包列表
pip freeze >requirements.txt
# 从依赖包列表中安装
pip install -r requirements.txt
# 确保当前环境软件包的版本(并不确保安装)
pip install -c constraints.txt
3.3制限なしのバイナリインストールパッケージ
状況がプラットフォームに対応していないので、デフォルトのプラットフォームのホイールパッケージは、PIPダウンロードコマンドを実行するためのプラットフォームであることから発生する可能性があります。
例えばpymongo-2.8-CP27-なし-macosx_10_10_intel.whlがlinux_x86_64にインストールすることができないMacOSのシステムで得られました。
ダウンロードされ、次のコマンドのtar.gzパッケージを使用して、インストールがインストールPIPを直接使用することができます。
ホイールパッケージより、このパッケージは、インストール時に、それは長い時間をコンパイルされます。
# 下载非二进制的包
$ pip download --no-binary=:all: pkg
# 安装非二进制的包
$ pip install pkg --no-binary
3.4インストールプロキシサーバーを指定します
あなたは、ネットワーク環境にいるとき、あなたは直接、パブリックネットワークに接続することはできません。あなたが使用今回pip install
インストールパッケージは、それが失敗します。
このような状況に直面して、2つの方法があります。
- ネットワーク内のマシンにインストールされているオフラインのダウンロードパッケージにコピー
- プロキシサーバは要求を転送使用
最初のアプローチ、実現可能なものの、しかし、かなりの数の欠点があります
- ステップは、複雑で時間がかかり、労働集約
- 私たちは、パッケージの依存関係を扱うことができません
ここでは第二の方法を紹介するフォーカス:
$ pip install --proxy [user:passwd@]http_server_ip:port pkg
たびに、設定ファイルを書き込むことができるため、長い、やや面倒な入力パラメータを送信するためにインストールパッケージ:$HOME/.config/pip/pip.conf
このパスのために、いくつかのを説明します
- 異なるオペレーティングシステム、異なるパス
# Linux/Unix:
/etc/pip.conf
~/.pip/pip.conf
~/.config/pip/pip.conf
# Mac OSX:
~/Library/Application Support/pip/pip.conf
~/.pip/pip.conf
/Library/Application Support/pip/pip.conf
# Windows:
%APPDATA%\pip\pip.ini
%HOME%\pip\pip.ini
C:\Documents and Settings\All Users\Application Data\PyPA\pip\pip.conf (Windows XP)
C:\ProgramData\PyPA\pip\pip.conf (Windows 7及以后)
- あなたのマシン上でこのファイルがなければ、あなた自身を作成することができます
サンプルのために、ここで、どのように設定するには:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
# 替换出自己的代理地址,格式为[user:passwd@]proxy.server:port
proxy=http://xxx.xxx.xxx.xxx:8080
[install]
# 信任阿里云的镜像源,否则会有警告
trusted-host=mirrors.aliyun.com
3.5ユーザーは、独自のソフトウェアパッケージをインストール
知らないかもしれない多くの人々は、Pythonのインストールパッケージは、ユーザーから単離することができます。
あなたが管理者権限を持っている場合は、地球環境にパッケージをインストールすることができます。地球環境でのこのパッケージには、マシンの管理者権限を持つすべてのユーザーが使用することができます。
勝手にマシンだけでなく、上のユーザーが、地球環境にパッケージをインストールまたはアップグレードする場合は、それは無責任で危険な習慣です。
我々はそれを私たちの使用のために別のパッケージをインストールしたいかどうか、このような状況に直面して?
幸いなことに、そこに本当に。
私は考えることができる2つの方法があります。
- 仮想環境を使用します
- ユーザーの環境にインストールされたパッケージ
仮想環境、前に書かれたいくつかの記事は、もはやここで展開して話しません。
今日の焦点は、独自のユーザーパッケージをインストールする方法をお教えし、第二の方法でありますか?
コマンドは非常に簡単です、ただ追加--user
のパラメータを、ピップは、現在のユーザーにインストールされます~/.local/lib/python3.x/site-packages
、他のユーザーは、Pythonの影響を受けません。
pip install --user pkg
例を挙げる
# 在全局环境中未安装 requests
[root@localhost ~]# pip list | grep requests
[root@localhost ~]# su - wangbm
[root@localhost ~]#
# 由于用户环境继承自全局环境,这里也未安装
[wangbm@localhost ~]# pip list | grep requests
[wangbm@localhost ~]# pip install --user requests
[wangbm@localhost ~]# pip list | grep requests
requests (2.22.0)
[wangbm@localhost ~]#
# 从 Location 属性可发现 requests 只安装在当前用户环境中
[wangbm@ws_compute01 ~]$ pip show requests
---
Metadata-Version: 2.1
Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: [email protected]
Installer: pip
License: Apache 2.0
Location: /home/wangbm/.local/lib/python2.7/site-packages
[wangbm@localhost ~]$ exit
logout
# 退出 wangbm 用户,在 root 用户环境中发现 requests 未安装
[root@localhost ~]$ pip list | grep requests
[root@localhost ~]$
あなたは、個々のユーザー環境にいる場合は、pythonのパッケージには、まず現在のユーザー環境がインストールされているかどうかを取得します行う際に、このパッケージがインストールされている、優先し、地球環境のパッケージを使用してインストールされていません。
次の点を確認します。
>>> import sys
>>> from pprint import pprint
>>> pprint(sys.path)
['',
'/usr/lib64/python27.zip',
'/usr/lib64/python2.7',
'/usr/lib64/python2.7/plat-linux2',
'/usr/lib64/python2.7/lib-tk',
'/usr/lib64/python2.7/lib-old',
'/usr/lib64/python2.7/lib-dynload',
'/home/wangbm/.local/lib/python2.7/site-packages',
'/usr/lib64/python2.7/site-packages',
'/usr/lib64/python2.7/site-packages/gtk-2.0',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/lockfile-0.12.2-py2.7.egg']
>>>
4.パッケージのアンインストール
これは、コマンドで、それらを繰り返しません
$ pip uninstall pkg
パッケージをアップグレード5.
既存のpythonをアップグレードしたい、その本質は、ダウンロードは、PyPIにパッケージの最新バージョンを起動し、それをインストールすることです。アップグレードが使用されるようにpip install
、単にパラメータを追加します--upgrade
。
$ pip install --upgrade pkg
アップグレードは、また、非常に使用するオプションがある場合--upgrade-strategy
、アップグレード戦略を指定するために使用されます。
それは2つのだけのオプションです。
eager
:すべての依存関係をアップグレードonly-if-need
:古いバージョンが新しい親の依存関係に適合していない場合にのみ、アップグレードされます。
PIPバージョン10.0の後、このオプションのデフォルト値がされonly-if-need
、書かれたので、以下の2がで交換されます。
pip install --upgrade pkg1
pip install --upgrade pkg1 --upgrade-strategy only-if-need
上記は、利便性のために、ほぼすべての一般的な使用シナリオピップを含み、私はあなたがしたい場合、あなたは(時間をプログラミングPythonの)私の公共の数に焦点を当てることができ、テーブルにそれを組織する、舞台裏の返信「ピップ」、あなたは透かし画像なしでHDを得ることができます。