无法在Ubuntu上导入pip安装的模块

时间:2017-09-18 00:56:17

标签: python linux ubuntu

我是一个linux新手,搞砸了python3在我的服务器中设置的方式。它已经有了python 3.5,但我需要3.6,所以我安装了它,现在它不会导入我用pip3安装的任何模块,我的猜测之一是系统变量的配置错误而python 3.6可以&# 39;访问图书馆。

对不起,如果它看起来有点模糊,任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

Python 3.6有自己的包子目录;您需要重新安装所有软件包。

这使得不同的Python版本彼此分离,并确保没有兼容性问题。例如,一个包可能与Python 3.6兼容,但不与3.5兼容,如果同时使用3.5和3.6(例如,用于测试目的),则该包对于Python 3.5不起作用。

要区分Python 3.5的pip和3.6的版本,请在其"模块"中使用它。命令格式:

python3.6 -m pip install <whatever>

python3.5甚至python2.7(*)

相似

为Python 3.6安装所有当前Python 3.5软件包的一种可能的简单方法是使用pip&#39; freeze命令并使用xargs

python3.5 -m pip freeze | xargs -n1 python3.6 -m pip install

-n1将软件包列表逐个提供给pip install,因此如果在安装Python 3.6时出现软件包问题,您将看到错误消息,但除此之外,它会愉快地继续下一个包裹。

请注意,pip freeze会粘贴每个版本的当前安装的版本;您不会以这种方式自动安装Python 3.6的最新版本。也许这就是你想要的。否则,请使用--upgrade标志:

python3.5 -m pip freeze | sed -ne 's/==.*//p' | xargs -n1 python3.6 -m pip install`

(这也是一次升级所有pip安装包的方法:

python -m pip freeze | sed -ne 's/==.*//p' | xargs -n1 python -m pip install --upgrade`

(*)如果Python 2.7有些旧,默认情况下可能没有pip作为模块安装。