Python软件包安装的三种常见方法


Posted in Python onJuly 07, 2022

前言

有些 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: 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 所示的页面。

Python软件包安装的三种常见方法

图 1 PyPI的主页面

在搜索框内输入 demo,按 Enter 键,即可看到搜索到的与 demo 相关的 Python 包,如图 2 所示。

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软件包安装内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的Flask框架中web表单的教程
Apr 20 Python
Python运行报错UnicodeDecodeError的解决方法
Jun 07 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
python属于解释语言吗
Jun 11 Python
手把手教你用Django执行原生SQL的方法
Feb 18 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 #Python
Python实现数据的序列化操作详解
Jul 07 #Python
Python如何利用pandas读取csv数据并绘图
Python可视化神器pyecharts绘制水球图
Jul 07 #Python
python数字图像处理之图像自动阈值分割示例
Python 读取千万级数据自动写入 MySQL 数据库
Jun 28 #Python
python数字图像处理:图像简单滤波
Jun 28 #Python
You might like
PHP+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
tween.js缓动补间动画算法示例
2018/02/13 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
从头学Python之编写可执行的.py文件
2017/11/28 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
Keras实现DenseNet结构操作
2020/07/06 Python
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
师范应届生求职信
2013/11/15 职场文书
文明礼仪小标兵事迹
2014/01/12 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
部门2014年度工作总结
2014/11/12 职场文书
党支部书记岗位职责
2015/02/15 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏