安裝軟件包
本節介紹如何安裝Python的基本知識。包裹.
需要注意的是,這個上下文中的“包”一詞被用作分布(即要安裝的一組軟件),而不是指包裝在Python源代碼中導入(即模塊的容器)。Python社區中常見的引用分布使用“包”一詞。使用“分發”這個術語通常是不可取的,因為它很容易與Linux發行版或另一個更大的軟件發行版(如Python本身)混淆。
內容
安裝軟件包的要求
本節描述安裝其他Python包之前應遵循的步驟。
確保可以從命令行運行Python
在進一步研究之前,請確保您有Python,並且您的命令行中提供了預期的版本。您可以通過運行以下命令(win+r打開命令行,然后運行如下命令)來檢查這一點:
python --version
你應該得到一些輸出,比如Python 3.6.3...如果您沒有Python,請從python.org或參考安裝Python“Hitchhiker Python指南”一節。
注
如果您是新來的,並且遇到這樣的錯誤:
>>> python --version Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'python' is not defined
這是因為本教程中的這個命令和其他建議的命令打算在殼(又稱a終端或控制台)。見Python for初學者入門教程有關使用操作系統的shell和與Python交互的介紹。
注
如果您使用的是增強的shell(如IPython或木星筆記本),則可以運行系統命令,如本教程中的命令,方法是使用!性格:
In [1]: import sys !{sys.executable} --version Python 3.6.3
建議寫{sys.executable}而不是平淡python為了確保在Python安裝中運行與當前正在運行的記事本相匹配的命令(這可能不是與python(命令指)。
注
由於大多數Linux發行版處理Python 3遷移的方式,使用系統Python而不創建虛擬環境的Linux用戶應該首先替換python本教程中的python3而pip命令用pip3 --user...做不運行本教程中的任何命令sudo:如果您獲得了權限錯誤,請回到關於創建虛擬環境的部分,設置一個環境,然后繼續編寫教程。
確保您可以從命令行運行pip。
另外,你需要確保PIP可用。您可以通過運行以下命令來檢查這一點:
pip --version
如果您從源代碼安裝Python,則使用python.org,或通過自制你應該已經有了。如果您在Linux上並使用操作系統包管理器安裝,則可能需要單獨安裝pip,請參見用Linux包管理器安裝pip/setuptools/輪子.
如果pip還沒有安裝,那么首先嘗試從標准庫引導它:
python -m ensurepip --default-pip
如果這還不能讓你跑pip:
安全下載get-pip.py 1
跑
python get-pip.py. 2這將安裝或升級pip。此外,它將安裝設置工具和車輪如果他們還沒安裝好的話。警告
如果您使用的是由操作系統或其他包管理器管理的Python安裝,請小心。py與這些工具不協調,可能會使您的系統處於不一致的狀態。你可以用
python get-pip.py --prefix=/usr/local/安裝在/usr/local這是為本地安裝的軟件設計的。
確保pip、setuptools和輪子都是最新的。
當pip單獨安裝就足以從預構建的二進制檔案中安裝,直到最新的副本。setuptools和wheel項目對於確保您也可以從源檔案中安裝非常有用:
python -m pip install --upgrade pip setuptools wheel
或者,創建一個虛擬環境。
看見下面一節關於細節,但是這里是基本的文夫 3命令用於典型的Linux系統:
python3 -m venv tutorial_env
source tutorial_env/bin/activate
這將在tutorial_env子目錄,並配置當前shell以將其用作默認值。python環境。
創建虛擬環境
Python“虛擬環境”允許Python包裹安裝在特定應用程序的獨立位置,而不是全局安裝。如果您希望安全地安裝全局命令行工具,請參見安裝獨立命令行工具.
假設您有一個需要LibFoo版本1的應用程序,而另一個應用程序需要版本2。如果將所有內容安裝到/usr/lib/python3.6/site-Package(或平台的標准位置)中,那么很容易在無意中升級不應該升級的應用程序的情況下結束。
或者更廣泛地說,如果您想安裝一個應用程序而不安裝它呢?如果應用程序工作正常,那么其庫或這些庫的版本中的任何更改都會破壞應用程序。
另外,如果你不能安裝包裹進入全局站點-軟件包目錄?例如,在共享主機上。
在所有這些情況下,虛擬環境都可以幫助您。它們有自己的安裝目錄,不與其他虛擬環境共享庫。
目前,有兩種常見的創建Python虛擬環境的工具:
-
文夫默認情況下在Python3.3及更高版本中可用,並安裝PIP和設置工具在Python3.4及更高版本中創建的虛擬環境。
-
虛擬人需要單獨安裝,但支持Python2.7+和Python3.3+,並且PIP, 設置工具和車輪默認情況下總是安裝在創建的虛擬環境中(不管Python版本如何)。
基本用法如下:
使用文夫:
python3 -m venv <DIR> source <DIR>/bin/activate
使用虛擬人:
virtualenv <DIR> source <DIR>/bin/activate
使用來源在Unixshell下,確保虛擬環境的變量是在當前shell中設置的,而不是在子進程中設置的(子進程隨后消失,沒有任何有用的效果)。
在上述兩種情況下,Windows用戶都應該使用來源命令,但是應該運行激活腳本直接來自命令shell,如下所示:
<DIR>\Scripts\activate
直接管理多個虛擬環境可能會變得乏味,因此依賴關系管理教程引入了一個更高級的工具,皮蓬,它會自動管理您工作的每個項目和應用程序的單獨虛擬環境。
從PyPI安裝
最常見的用法PIP是從Python包索引使用需求說明符...一般來說,需求說明符由一個項目名稱和一個可選的項目名稱組成。版本說明符. 佩普440包含全規格當前支持的說明符。下面是一些例子。
安裝最新版本的“SomeProject”:
pip install "SomeProject"
若要安裝特定版本,請執行以下操作:
pip install "SomeProject==1.4"
安裝大於或等於一個版本而小於另一個版本:
pip install "SomeProject>=1,<2"
pip install "SomeProject~=1.4.2"
在本例中,這意味着安裝“=1.4.*”版本,也就是“>=1.4.2”版本。
源分布與車輪
PIP可以從源分布(Sdist)或車輪,但是如果兩者都出現在pypi上,pip會更喜歡兼容的。車輪.
車輪是預建的分布提供更快安裝速度的格式源分布(Sdist),尤其是當項目包含已編譯的擴展時。
如果PIP如果找不到要安裝的車輪,它將在本地構建一個車輪並將其緩存以供將來安裝,而不是在將來重新構建源分布。
安裝到用戶站點
安裝包裹與當前用戶隔離的,請使用--user國旗:
pip install --user SomeProject
有關更多信息,請參見用戶安裝從PIP文檔中分離出來。
注意,--user當在虛擬環境中時,標志沒有效果-所有安裝命令都會影響虛擬環境。
如果SomeProject定義任何命令行腳本或控制台入口點,--user將使它們安裝在用戶群的二進制目錄,該目錄可能已經存在,也可能沒有出現在shell的PATH...(從版本10開始,pip在將腳本安裝到外部目錄時顯示警告。PATH)如果安裝后shell中的腳本不可用,則需要將該目錄添加到PATH:
-
在linux和macos上,您可以通過運行
python -m site --user-base加上bin一直到最后。例如,這通常會打印~/.local(與~擴展到指向主目錄的絕對路徑),因此需要添加~/.local/bin敬你的PATH...你可以把你的PATH永久地修改~/.剖面. -
在Windows上,您可以通過運行
py -m site --user-site替換site-packages帶着Scripts...例如,這可能會返回C:\Users\Username\AppData\Roaming\Python36\site-packages所以你需要把你的PATH包括C:\Users\Username\AppData\Roaming\Python36\Scripts...您可以設置您的用戶。PATH永久保存在控制面板...您可能需要注銷PATH更改生效。
從VCS安裝
在“可編輯”模式下從VCS安裝一個項目。有關語法的完整細分,請參見pip關於風投支持.
pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject # from git pip install -e hg+https://hg.repo/some_pkg#egg=SomeProject # from mercurial pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomeProject # from svn pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomeProject # from a branch
從其他索引安裝
從備用索引安裝
pip install --index-url http://my.package.repo/simple/ SomeProject
在安裝期間搜索附加索引,PyPI
pip install --extra-index-url http://my.package.repo/simple SomeProject
從本地src樹安裝
從本地src安裝發展模式,即項目似乎已安裝,但仍可從src樹中編輯。
pip install -e <path>
您也可以正常地從src安裝。
pip install <path>
從本地檔案安裝
安裝特定的源存檔文件。
pip install ./downloads/SomeProject-1.0.4.tar.gz
從包含檔案的本地目錄安裝(不要檢查PyPI)
pip install --no-index --find-links=file:///local/dir/ SomeProject pip install --no-index --find-links=/local/dir/ SomeProject pip install --no-index --find-links=relative/dir/ SomeProject
從其他來源安裝
要從其他數據源(例如AmazonS 3存儲)安裝,可以創建一個在Pep 503符合索引格式,並使用--extra-index-url標志指示pip使用該索引。
./s3helper --port=7777 pip install --extra-index-url http://localhost:7777 SomeProject
安裝Setuptools“Extras”
$ pip install SomePackage[PDF]
$ pip install SomePackage[PDF]==3.0
$ pip install -e .[PDF]==3.0 # editable project in current directory
