我正在运行Ubuntu 9:10,并且安装了一个名为M2Crypto的软件包(版本为0.19.1)。我需要下载,构建并安装最新版本的M2Crypto软件包(0.20.2)。如何更新Python包?
0.19.1包在许多位置包含文件,包括(/ usr/share/pyshared和/usr/lib/pymodules.python2.6)。
如何在安装0.20.2之前从我的系统中完全卸载0.19.1版本?
我正在运行Ubuntu 9:10,并且安装了一个名为M2Crypto的软件包(版本为0.19.1)。我需要下载,构建并安装最新版本的M2Crypto软件包(0.20.2)。如何更新Python包?
0.19.1包在许多位置包含文件,包括(/ usr/share/pyshared和/usr/lib/pymodules.python2.6)。
如何在安装0.20.2之前从我的系统中完全卸载0.19.1版本?
您可能想要查看一个Python包管理器,如pip。如果你不想使用Python软件包管理器,你应该可以下载M2Crypto并通过旧版本安装/编译/安装。
最初安装的包是怎么样的?如果是通过apt,你可以只能够做apt-get remove python-m2crypto
如果通过的easy_install安装了它,我敢肯定,唯一的办法是只垃圾lib下的文件,共享文件等。
我的未来建议?使用类似pip的东西来安装你的软件包。此外,您可以查找virtualenv之类的东西,以便您的软件包以每个环境为基础存储,而不仅仅存储在根目录中。
画中画,这是很容易:
pip install m2crypto
但你也可以从混帐,SVN等回购与正确的地址安装。这是在pip documentation
他描述安装文件的方式表明软件包是使用apt软件包管理器安装的 - 因为(在Debian AFAIK上)apt会在他列出的2个位置安装python软件包 -/share/pyshared/..用于共享代码跨版本和/ usr/lib/..版本特定部分。另一方面,易于安装/点将使用/ usr/local/lib/.. - 正如你所说 - 只是apt-get删除会做他。 – 2011-12-11 02:25:20
所有解释,我发现最好的办法是从终端
sudo pip install [package_name] --upgrade
sudo
运行此命令会要求输入根口令来确认操作。
pip list --outdated
您将看到过时的软件包列表。pip install [package] --upgrade
它会升级[package]
并卸载以前的版本。自动升级所有过时的包(即使用PIP已安装),只需运行该脚本波纹管,
pip install $(pip list --outdated | awk '{ print $1 }') --upgrade
这里,pip list --outdated
将列出所有过时的包,然后我们把它管awk,所以它只会打印名称。 然后,$(...)
将使其成为一个变量,然后,一切都自动完成。确保你有权限。(只要把sudo
点子之前,如果你困惑) 我会写一个名为脚本,pip-upgrade
的代码波纹管,
#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade
然后使用脚本的以下行做准备:
sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/
然后,只需打pip-upgrade
,瞧!
我得到了一个语法错误,指向最后一个括号:awk:cmd。 1:{print $ 1})' – 2017-12-03 23:08:53
@TT较新版本的'pip'要求您使用'--format = legacy'选项,即'pip list --outdated --format = legacy'。另外FYI大家:在许多Linux发行版中盲目更新所有模块通过点可能是相当危险的。他们中的许多人通过发行版软件包提供了特定的python模块,如果你更新狗屎,某些发行版(特别是RHEL)可能会崩溃...更不用说,如果你通过pip更新,发行版软件包可能会恢复您的更改未来的更新。 – rsaw 2017-12-04 15:49:43
获取所有的过时的包和创建具有以下 命令 一个批处理文件PIP安装XXX --upgrade每个过时的包
我认为最好的一个班轮是:
pip install --upgrade <package>==<version>
方法1:手动一个升级由一个
PIP安装程序包-U
方法2:U一次全部升级(如果某些软件包未能升级,则可能导致高回滚)
pip install $(pip list --outdated --format = columns | tail -n +3 | cut -d“”-f1)--upgrade
方法3:在利用$循环
对于i升级逐个(PIP列表--outdated --format =列|尾-n 3 |切-d”“-f1);做pip安装$ i --upgrade;完成
谢谢。你说什么工作。我构建并安装了0.20.2,无需卸载0.19.1。 – thompson 2011-03-03 16:50:10