Kali最新的版本(2020.2)中安装的是是py3.8,只能安装tf2+。
下面先说一下通常的解决方案,这也是Google出来最多的解决方案:更新源,重新安装。也就是下面的1~3步骤,但自己的问题并未解决,最后采用终极解决方案,终于解决问题,成功安装pip3。
1、问题描述
Kali老版本(4.12.6-1kali6 (2017-08-30))中,使用apt-get install python3-pip
安装pip3,安装失败,提示:E: Unable to locate package python3-pip,详细信息如下所示。
2、问题分析 & Solution
上面提示E: Unable to locate package python3-pip是因为在说明在当前源(此时未做任何修改)中,找不到python3-pip的安装包,可以通过apt search python3-pip
命令进行查看,以下内容是我的虚拟机中的查找结果,这里结果为空,说明不存在,这也就是上面的E: Unable to locate package python3-pip提示原因。
在当前源(此时未做任何修改)中,找不到python3-pip的安装包,所以需要更换源操作。网上试用了几个源,比较推荐阿里云的源,如下:
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
具体操作:
- 1、将上述内容添加到
/etc/apt/sources.list
文件中(自己在这里注释掉了其他内容,只有上面两行有效),保存退出; - 2、
apt update
更新内容; - 3、使用
apt-get install python3-pip
安装pip3。
更新源后,可以再次查找,就能搜到该文件了。
3、最终解决方案
3.1 上述方法存在的问题
经过上面的操作,按照网上的教程就应该成功了,但自己在安装时遇到了如下运行错误:
root@kali:~/Desktop# apt-get install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gnome-session-common : Breaks: eog (< 3.36.0) but 3.26.2-2 is to be installed
libgirepository-1.0-1 : Breaks: python3-gi (< 3.34.0-4~) but 3.26.1-2 is to be installed
python3-pip : Depends: python3-setuptools but it is not going to be installed
Recommends: python3-dev (>= 3.2) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
安装这里推荐的软件:eog
,安装了以下,安装过程中发现路径中有一个py3.8的内容,所以取消了(个人猜测阿里云源的是py3.8的版本了,具体是否没去定位了)。
3.2 最终解决方案
该方法不仅仅适用于kali,对Mac、ubuntu等都适用。
-
首先安装setuptools
可以通过官方模块库来下载:https://pypi.python.org/pypi,这里直接用wget到服务器上下载了版本为19.6。wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz tar -zxvf setuptools-19.6.tar.gz cd setuptools-19.6 python3 setup.py build python3 setup.py install
-
下载并安装pip
到pypi.python.org中下载最新的版本。wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz tar -zxvf pip-8.0.2.tar.gz cd pip-8.0.2 python3 setup.py build python3 setup.py install pip3 install --upgrade pip -i https://pypi.douban.com/simple/ #升级到最新pip,非必须
经过如上两步,成功安装pip3。
这里安装的版本比较低,可以通过pip3 install --upgrade pip -i https://pypi.douban.com/simple/
升级pip到最新版本。
这里的方法主要参考了【install pip3 for python 3.x】,文中除了上述两点,还包括如何安装特定版本python。该文彻底解决了自己的问题,让自己折腾几小时有了一个圆满结局,太感谢了。
4、其他
在上面第二步中进行apt update
操作时,可能会报GPG error错,如下
# apt-get update
Get:1 http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease [30.5 kB]
Err:1 http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease
The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org>
Reading package lists... Done
W: GPG error: http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease: The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org>
E: The repository 'http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
解决方法: 下载最新key添加到keylist:wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add