python查看包版本、全部可更新包、更新单个包、更新全部包

在进行python相关学习中,会不断遇到要装新的包,需要了解当前包的版本,包的位置等,以便选择设置安装新包的路径及版本等,籍此,小结如下:

本文主要内容转载于「姬小野」的博文,原文链接:https://blog.csdn.net/wjh2622075127/article/details/88323044

一、如何查看python某个包的版本?

1、pip list // 全部,在里面找

2、pip freeze // 全部

3、pip show numpy // 单个

4、conda list numpy // 单个

二、查看包的位置

find 查找某个文件 find / -name mysql

which查找命令:通过path环境变量查找执行运行的文件路径.#动作和locate类似都是访问数据库的信息,所以比find(遍历硬盘)快,但有时因数据库更新不及时,而不能即时真实反映事实.

root@raspberrypi:/home/pi# which openssl
/usr/bin/openssl
root@raspberrypi:/home/pi# 
whereis 由于软件安装的地方可能不止一个地方,查看文件安装的所有路径(地址)
如果没有安装pygame或者pygame安装没成功(又或者没有添加在路径里),则不会显示文件路径出来。只提示:
whereis(选项)(参数)
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
-u:查找不包含指定类型的文件。
root@raspberrypi:/home/pi# whereis pygame
pygame:
root@raspberrypi:/home/pi# 
通过命令:find / -name pygame
查得:
/usr/lib/python3/dist-packages/pygame

将该路径添加致path:
export PATH=/usr/lib/python3/dist-packages/pygame:$PATH

查看PATH环境变量:echo $PATH

root@raspberrypi:/home/pi# echo $PATH
/usr/lib/python3/dist-packages/pygame:/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
 

再次查看whereis pygame:
root@raspberrypi:/home/pi# whereis pygame
pygame: /usr/lib/python3/dist-packages/pygame/pygame.ico  #这时已经有了路径位置显示
root@raspberrypi:/home/pi# 
上述方法的PATH 在终端关闭后就会消失。
所以还是建议通过编辑/etc/profile来改PATH,也可以改home目录下的.bashrc(即:~/.bashrc)。
etc/profile和/etc/environment的比较

先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文。将/etc/profile 中的export LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。用户环境建立的过程中总是先执行/etc/profile然后在读取/etc/environment。为什么会有如上所叙的不同呢?

登录时应该是先执行/etc/environment,后执行/etc/profile。
        /etc/environment是设置整个系统的环境,而/etc/profile文件是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。
对于用户的SHELL初始化而言是先执行/etc/profile,再读取文件/etc/environment.对整个系统而言是先执行/etc/environment。这样理解正确吗?
       /etc/enviroment --> /etc/profile --> $HOME/.profile   -->$HOME/.env (如果存在)
       /etc/profile 是所有用户的环境变量
       /etc/enviroment是系统的环境变量
登陆系统时shell读取的顺序应该是 
       /etc/profile ->/etc/enviroment -->$HOME/.profile   -->$HOME/.env
      
       如果同一个变量在用户环境(/etc/profile)和系统环境(/etc/environment)有不同的值那应该是以用户环境为准了。

       /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

修改/etc/profile之后,使立即生效:source /etc/profile  #关于source命令,参阅http://www.51testing.com/html/38/225738-206878.html

 (关于path环境变量如何设置,参阅https://blog.csdn.net/qingkongyeyue/article/details/52733203)

 

二、列出全部outdated(可更新)的包

pip list --outdated --format=legacy   #常写为pip list -o

pip list --outdated --format=columns

这两个命令的区别是列表的方式不一样。且他们的命令执行时间都非常的长。

三、更新单个包如numpy

pip install --upgrade numpy   #现在版本提示用python(python3) -m pip install --upgrade numpy

或者

pip install -U numpy

四、更新全部包

需要用到一个叫pip-review的执行程序

首先通过pip下载pip install pip-review

然后执行以下命令:pip-review --local --interactive

或者执行下面python程序

from pip._internal.utils.misc import get_installed_distributions
from subprocess import call
for dist in get_installed_distributions():
    call("pip install --upgrade " + dist.project_name, shell=True)


:( 不过更新全部包不是非常靠谱,毕竟更新一个包都经常出问题!何况是更新所有的。

五、卸载包的方法
和安装的方法类似

pip uninstall numpy
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值