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