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

前言

有些 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 package\n'
>>> 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: [email protected]
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 所示的頁面。

PyPI的主頁面

圖 1 PyPI的主頁面

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

搜索demo相關的Python包

圖 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軟件包安裝內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: