首頁 > 軟體

Python軟體包安裝的三種常見方法

2022-07-06 18:02:48

前言

有些 Python 軟體包是系統自帶的,如 sys,這些包在安裝 Python 時已自動安裝。但有些包是需要自行下載安裝的,如 PIL。這些第三方的軟體有的以原始碼的形式提供,有的以安裝包的形式提供。

安裝第三方 Python 包的方法有很多種。本節將介紹一些常見的方法。

1、複製原始碼到系統目錄

最簡單的方法就是將 Python 原始檔複製到 sys.path 包含的某個目錄下。這樣使用“imp ort檔名”即可匯入該包。#價位@762459510 免費領取python、爬蟲配套實操資料#

下面的程式碼檢視 sys.path 變數包含的路徑:

>>> import sys
>>> sys.path
['', '/anaconda3/lib/python37.zip',
'/anaconda3/lib/python3.7',         # 這裡要使用的目錄
'/anaconda3/lib/python3.7/lib-dynload',
'/anaconda3/lib/python3.7/site-packages',
'/anaconda3/lib/python3.7/site-packages/aeosa']

假定將檔案 demo1.py 複製到目錄 /anaconda3/lib/python3.7,就是上面的程式碼第 4 行指定的目錄。該檔案的內容如下:

""" just a demo package
"""
var_str = "love python"
var_int = 88
def show_usage():
print("just to demo the package installation")

下面就可以使用 demo1 模組了,方法如下:

>>> import demo1
>>> demo1.var_int
88
>>> demo1.__doc__
' just a demo packagen'
>>> demo1.var_str
'love python'
>>> demo1.show_usage()
just to demo the package installation

2、使用PIP進行安裝

最近比較流行的安裝工具是 PIP,該工具一般在安裝 Python 時已成功安裝,不需要單獨安裝。 PIP 是使用者端安裝工具,安裝包來自 PyPI,PIP 從 PyPI 上下載安裝包,並且安裝在本機。

Python 軟體包的製作方需要有 PyPI 賬戶,這樣才可以將自己編寫的 Python 包推播到 PyPI 上以供其他使用者使用。而對於普通使用者來說,並不需要註冊 PyPI 賬戶,只需要本地有 PIP 使用者端程式即可。

PIP 提供了安裝、解除安裝、列出安裝軟體包列表等功能。下面將對這些常見功能一一講解。

1) 安裝

安裝的常用命令有兩個,一個不指定版本資訊,一個指定版本資訊。下面分別是它們的格式:

pip install 包名
pip install 包名==版本號

如果已經有了一個安裝包,但是希望修改其版本,則需要使用下面的命令:

pip install --upgrade 包名==版本

下面是安裝一個 Python 包 lin-demo 的例子。

$ pip install lin-demo
Collecting lin-demo             # 獲得lin-demo包的相關資訊
Downloading https://files.pythonhosted.org/packages/87          #下載安裝包
/35/985a9e7d7fd66bfe82c3c83092bb14d23105e15b5738e02b6c761737c8a8/
lin_demo-0.0.1-py3-none-any.whl
Installing collected packages: lin-demo # 安裝
Successfully installed lin-demo-0.0.1  # 安裝成功,顯示安裝的版本

由於 PyPI 是一個開源專案,有些公司也在內部搭建了自己的 PyPI 伺服器。有些專有的包可能只能從公司自己搭建的伺服器上才能找到,這時就需要指定 PyPI 伺服器資訊,而不是使用預設的伺服器。下面的命令可以指定安裝包的來源:

pip install --index-url 包的來源 包名

如果一次要安裝很多的軟體包,尤其是在搭建開發或者執行環境時,這麼一個一個地去執行安裝命令進行安裝顯得不是很友好。

這時可以將要安裝的包寫在一個文字檔案中,如 requirements.txt,然後使用該文字檔案作為輸入,將文字檔案中列出的 Pyhton 包一次安裝完成。這相當於是一個批次處理命令,其格式如下:

pip install -r 包列表檔案

這個包含包列表的文字檔案的格式也很簡單,一般一行寫一個包的名和版本,格式還是“包名==版本”。下面便是一個例子:

CherryPy13.0.0
Jinja22.10
MySQL-python1.2.5
Routes2.4.1
SQLAlchemy1.1.15
Werkzeug0.13
hpc0.2.725
requests2.18.4

2) 解除安裝

解除安裝相對來說比較簡單。由於一臺機器對於某個軟體包只能安裝某一個版本,而且肯定是安裝在本機上的,所以解除安裝命令沒有指定版本、指定源這些引數。下面即為解除安裝某個包的命令格式:

pip uninstall 包名

3) 檢視已經安裝的包

有時在 import 語句時會丟擲異常,原因可能是某個軟體包沒有安裝,或者安裝的版本不對。這時可以通過下面的命令來檢視所有本地已經安裝的 Python 包:

pip freeze

下面是一個例子:

$ pip freeze
alabaster0.7.12                # 0.7.12是版本資訊
allure-pytest2.7.0
allure-python-commons2.7.0
anaconda-client1.7.2
…                                           # 其他的已經安裝的Python包
anaconda-navigator1.9.7
anaconda-project0.8.2
appnope==0.1.0

4) 檢視某個包的詳細情況

如果對某個包的具體作用不是很清楚,或者對其所依賴的包的情況不是很清楚,這時可以檢視該包的詳細描述,命令如下:

pip show 包名

下面是一個例子:

$ pip show SQLAlchemy
Name: SQLAlchemy
Version: 1.2.11                    # 版本資訊
Summary: Database Abstraction Library
Home-page: http://www.sqlalchemy.org
Author: Mike Bayer
Author-email: mike_mp@zzzcomputing.com
License: MIT License
Location: /Library/Python/2.7/site-packages     # 安裝位置
Requires:                              # 其所依賴的包
Required-by:                        # 依賴該包的包

5) 檢視伺服器上的包資訊

可以使用命令列來查詢包,命令列格式如下:

pip search 包名

然後便可以看到與指定包名類似的包的資訊,包括版本和描述資訊。下面是查詢帶有 demo 字樣的包的資訊:

$ pip search demo                             # 搜尋與demo相關的Python包
demo (0.1.0)                            - egg test demo.
rattail-demo (0.1.0)            - Rattail Software Demo
typosquating-demo (1.1.7)       - Typosquating demo attack.
hacmec-demo (0.0.3)             - hACMEc demo application
python-demo (0.0.3)             - python scripts demos
python-demo (0.0.3)             - python scripts demos
my-demo (2019.3.31)             - A demo for python packaging.
pysp2tf-demo (0.11)             - PySpark and TF demo
flask-demo (1.0.0)                      - demo template based on flask
agora-demo (0.1.0)              - A demo testing configuration and dataset
                                                                  management.
version-demo (0.0.3)                    - Just demo for checking how is version work
smooth-demo (0.1)                       - Tool to automate giving a demo on command line
pypi-task-demo (0.0.1)                  - PyPI demo
…                                                             # 省略一些包
jdhp-setuptools-demo (0.2)              - A snippet to test setuptools and PyPI
flask_neglog (0.0.2)                    - demo
mylittlepypiproject (0.0.4)             - A demo
flask_aide (0.0.1)                              - demo
mypypiproject (0.0.4)                   - A demo
my_little_pypi_project (0.0.4)          - A demo
ccq18-hello (0.2)                               - demos
hykpyp (0.1)                                    - this is demo
Flask-Kits (0.0.24)                     - demo
longj_demo (1.2.1)                      - this is a demo
demo-project-test-time (1.1111115)      -
openerp-web-tests-demo (7.0.406)        - Demonstration of web/javascript tests

當然,也可以在 PyPI 網站上進行查詢。開啟地址 https://pypi.org/,可以看到如圖 1 所示的頁面。

圖 1 PyPI的主頁面

在搜尋方塊內輸入 demo,按 Enter 鍵,即可看到搜尋到的與 demo 相關的 Python 包,如圖 2 所示。

圖 2 搜尋 demo 相關的 Python 包

3、使用easy_install和setup進行安裝

有些老的 Python 包可能沒有放在 PyPI 伺服器上,這時就需要使用 easy_install 來進行安裝了。

使用 easy_install 安裝其他軟體包之前需要首先安裝 easy_install 這個工具,步驟如下:

  • 從 http://peak.telecommunity.com/dist/ 下載 ez_steup.py 到本地。
  • 執行剛下載的 ez_setup.py。

這時在 Python 的系統目錄下便可以看到檔案 easy_install,這就是用來進行包安裝的工具。現在直接執行命令“easy_install包名”即可安裝需要的包。

有些模組的原始碼中包含 setup.py 檔案,這時一般使用下面的命令便可以完成安裝任務:

python setup.py install

例如有一個 Python 包叫作 send2trash,其原始碼地址是 https://github.com/hsoft/send2trash,下載原始碼,然後可以使用原始碼中的 setup.py 來進行安裝。

本節介紹的安裝方法並不常用,只有在安裝某些特殊的包時才會用到。多數 Python 包都可以通過 PIP 進行安裝,如本教學介紹的第三方 Python 包都是可以使用 PIP 進行安裝的。

總結

到此這篇關於Python軟體包安裝的三種常見方法的文章就介紹到這了,更多相關Python軟體包安裝內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com