pip和OS之间的包版本差异?

时间:2016-09-20 11:08:00

标签: python pip six

我安装了Debian OS和python版本2.7。但我对包six有一个奇怪的问题。我想使用1.10版本。

我已经通过pip安装了六个1.10:

$ pip list
...
six (1.10.0)

但是当我运行以下脚本时

python -c "import six; print(six.__version__)"

它说1.8.0

原因是操作系统中安装的veriosn不同:

$ sudo apt-cache policy python-six
python-six:
Installed: 1.8.0-1
Candidate: 1.8.0-1
Version table:
    1.9.0-3~bpo8+1 0
      100 http://172.24.70.103:9999/jessie-backports/ jessie-backports/main amd64 Packages
*** 1.8.0-1 0
    500 ftp://172.24.70.103/mirror/jessie-debian/ jessie/main amd64 Packages
    500 http://172.24.70.103:9999/jessie-debian/ jessie/main amd64 Packages
    100 /var/lib/dpkg/status

如何强制python使用通过pip安装的软件包?

1 个答案:

答案 0 :(得分:1)

您可以使用virtualenv

pip install virtualenv

cd project_folder
virtualenv venv

virtualenv venv将在当前目录中创建一个包含Python可执行文件的文件夹,以及可用于安装其他包的pip库的副本。虚拟环境的名称(在这种情况下,它是venv)可以是任何东西;省略名称会将文件放在当前目录中。

设置希望的python解释器

virtualenv -p /usr/bin/python2.7 venv

激活环境

source venv/bin/activate

从现在开始,使用pip安装的任何软件包都将放在venv文件夹中,与全局 Python安装隔离。

pip install six

现在你运行代码。当您完成simpliy停用venv

deactivate

另见the original resources