在python2和python3同时存在的情况下,如何使用pip安装指定版本的包(Ubuntu系统)

时间:2021-09-24 03:14:10

最近想测试CondenseNet(DenseNet的改进版)的代码,用到了CIFAR10的数据,在数据准备阶段,需要先运行代码将CIFAR10数据格式转换成tfrecords格式,所用代码需要拿python2运行。命令是:

`python2 generate_cifar10_tfrecords.py --data-dir=./cifar-10-data`

我的ubuntu里默认的是python3,在运行阶段,报错,提示我的python2底下没有安装six包。

$ python2 generate_cifar10_tfrecords.py --data-dir=./cifar-10-data
Traceback (most recent call last):
  File "generate_cifar10_tfrecords.py", line 33, in <module>
    import six
ImportError: No module named six

然后,运行pip安装的话,

pip install six

会把six安装到python3下面,而且会提示安装成功,但是运行python2时,依然报错。

正确做法应该是:

$ python2 -m pip install six
Collecting six
  Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: six
Successfully installed six

搞定!安装其他缺少的包也是一样命令。

由于我只用python2处理数据格式,所以用完之后,为了节约内存,还要把python2下面的包删掉。语句同样简单

$ python2 -m pip uninstall six

这样就不会误删位于python3下面的包了。