有什么办法可以使 pip 可以很好地使用多个版本的 Python 吗?例如,我想使用 pip 显式地将内容安装到我的站点 2.5 安装或我的站点 2.6 安装。

例如,与 easy_install, , 我用 easy_install-2.{5,6}.

而且,是的 - 我知道 virtualenv,但不 - 它不是这个特定问题的解决方案。

有帮助吗?

解决方案

当前推荐 是使用 python -m pip, , 在哪里 python 是您想要使用的 Python 版本。这是建议,因为它适用于所有版本的 Python 和所有形式的 virtualenv。例如:

# The system default python:
$ python -m pip install fish

# A virtualenv's python:
$ .env/bin/python -m pip install fish

# A specific version of python:
$ python-3.6 -m pip install fish

之前的答案,留给后人:

从0.8版本开始,Pip支持 pip-{version}. 。您可以像这样使用它 easy_install-{version}:

$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage

编辑:pip 更改了其架构以使用 pipVERSION 代替 pip-VERSION 在1.5版本中。如果您有,您应该使用以下内容 pip >= 1.5:

$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage

查看 https://github.com/pypa/pip/pull/1053 更多细节


参考:

其他提示

在 Windows 上,您可以通过以下命令使用给定的 Python 版本执行 pip 模块 Python启动器, py.exe, ,如果您选择在 Python 3 安装过程中安装它。

py -3 -m pip install packagename
py -2 -m pip install packagename

您可以更具体并请求准确的 Python 子版本:

py -3.6 -m pip install packagename

要获取通过启动器可用的所有已安装 Python 版本的列表,请运行:

py --list

或者,您可以直接启动所需的 Python 可执行文件:

C:/path/to/specific/python.exe -m pip install packagename

/path/to/python2.{5,6} /path/to/pip install PackageName不起作用?

有关这对没有任何点子Python版本工作已经安装你需要下载PIP和做python*version* setup.py install。例如python3.3 setup.py install。这解决了注释的导入错误。 (如所建议的通过@hbdgaf)

我有蟒蛇默认(Amazon EC2的AMI),但需要python2.7加上我的应用程序的一些外部包安装2.6。假设你已经(在我的案件2.6)安装python2.7一起用默认的Python。下面是如何安装PIP和包非默认python2.7

您的Python版本安装PIP:

curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py

使用特定的PIP版本安装包:

pip2.7 install mysql-connector-python --allow-external mysql-connector-python

它在 Windows 中对我有用:

  1. 我将 python 文件 python.py 和 pythonw.exe 的名称更改为 python3.py pythonw3.py

  2. 然后我只是在提示符下运行这个命令:

    python3 -m pip install package

其他答案显示了如何在 2.X 和 3.X Python 中使用 pip,但没有显示 如何处理多个 Python 发行版的情况(例如原始 Python 和 Anaconda Python).

我一共有3个Python版本:原始Python 2.7和Python 3.5以及Anaconda Python 3.5。

以下是我将包安装到的方法:

  1. 原来的 Python 3.5:

    /usr/bin/python3 -m pip install python-daemon
    
  2. 原来的 Python 2.7:

    /usr/bin/python -m pip install python-daemon
    
  3. 蟒蛇Python 3.5:

    python3 -m pip install python-daemon
    

    或者

    pip3 install python-daemon
    

    更简单,因为 Anaconda 会覆盖用户环境中的原始 Python 二进制文件。

    当然,在 anaconda 中安装应该是这样完成的 conda 命令,这只是一个例子。


另外,请确保为该特定 python 安装了 pip。您可能需要手动安装 pip。这适用于 Ubuntu 16.04:

sudo apt-get install python-pip 

或者

sudo apt-get install python3-pip

我就遇到了这个问题,我最近发现我没有得到正确点子为Python 3,我的Linux系统上也有Python 2中。

首先,你必须确保你已经安装了PIP您的Python版本:

有关的Python 2:

sudo apt-get install python-pip

有关的Python 3:

sudo apt-get install python3-pip

然后安装软件包或Python的一个版本中,另外,只要使用以下的Python 2:

pip install <package>

或用于Python 3:

pip3 install <package>

PIP也是Python包。因此,要安装的模块到一个特定的Python版本的最简单的方法将是以下

 python2.7 /usr/bin/pip install foo

python2.7 -m pip install foo

因此很明显,有easy_install pip的多个版本。这似乎是一个很大的混乱。无论如何,这是我做的,以安装Django的Python 2.7在Ubuntu 12.10:

$ sudo easy_install-2.7 pip
Searching for pip
Best match: pip 1.1
Adding pip 1.1 to easy-install.pth file
Installing pip-2.7 script to /usr/local/bin

Using /usr/lib/python2.7/dist-packages
Processing dependencies for pip
Finished processing dependencies for pip

$ sudo pip-2.7 install django
Downloading/unpacking django
  Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded
  Running setup.py egg_info for package django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    changing mode of /usr/local/bin/django-admin.py to 755
Successfully installed django
Cleaning up...

$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> 

从这里: https://docs.python.org/3/installing/

下面是如何安装软件包为安装在同一时间不同版本的在Linux,Mac,POSIX

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4
python3.5 -m pip install SomePackage  # specifically Python 3.5
python3.6 -m pip install SomePackage  # specifically Python 3.6

在<强>窗下,使用PY的Python发射结合-m开关:

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

在Linux中,Mac OS X和其他POSIX系统,在组合使用中的版本的Python命令与-m开关运行pip的合适副本:

python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage

(适当版本PIP命令也可以是可用的)

在Windows上,使用py Python的发射结合所述-m开关:

py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3.4 -m pip install SomePackage  # specifically Python 3.4

如果您获得py -3.4错误再试试:

pip install SomePackage

大部分的答案在这里讨论的问题,但我想补充一点什么继续就困惑我当我安装有在CentOS 7.在/usr/local创造蟒蛇的备用安装,就出现了像PIP自从工作我可以用pip2.7 install,它会安装模块。不过,我无法弄清楚是为什么我新安装的Python的版本并没有见到我的安装。

原来于CentOS 7,已经有一个python2.7并在/usr/bin文件夹pip2.7。要为您的新的Python分发安装点子,你需要明确告诉sudo来去/usr/local/bin

sudo /usr/local/bin/python2.7 -m ensurepip

这应该得到pip2.7安装在您的/usr/local/bin文件夹你的Python的版本一起。诀窍是,当要安装的模块,则要么需要修改须藤$PATH变量以包括/usr/local/bin或需要执行

sudo /usr/local/bin/pip2.7 install <module>

如果你想安装一个新的模块。我花了永远要记住,sudo没有立即看到/usr/local/bin

安装多个版本的 Python 和各自的软件包。

同一台 Windows 机器上的 Python 版本:2.7、3.4和3.6

安装所有 3 个版本的 Python :

  • 使用以下路径安装了 Python 2.7 、 3.4 和 3.6

enter image description here

所有 3 个版本的 Python 的 PATH :

  • 确保 PATH 变量(在系统变量中)包含以下路径 - C:\Python27\;C:\Python27\Scripts;C:\Python34\;C:\Python34\Scripts;C:\Python36\;C:\ Python36\脚本\;

重命名版本的可执行文件 :

  • 将 C:\Python36 和 C:\Python34 中的 python 可执行文件名称分别更改为 python36 和 python34。

enter image description here

检查所有版本的命令提示符:

enter image description here

为每个版本单独安装软件包

enter image description here

上下文:的Archlinux

操作:搜索 安装python2-PIP:点击 sudo pacman -S python2-pip

您现在有pip2.7:点击 sudo pip2.7 install boto

测试(在我的情况,我需要“博托”):点击 运行下面的命令:

python2
import boto

成功:无错误

退出:控制 + d

例如,如果您设置其他版本(例如3.5)作为默认值,并且想要为 python 2.7 安装 pip:

  1. 下载点在 https://pypi.python.org/pypi/pip (柏油)
  2. 解压 tar 文件
  3. cd 到文件目录
  4. sudo python2.7 setup.py install

您可以去例如C:\ Python2.7 \脚本,然后运行CMD从该路径。您可以运行pip2.7后安装yourpackage ...

这将安装软件包该版本的Python。

这是我对这个问题的看法。适用于 Python3。主要特点是:

  • 每个Python版本都是从源代码编译的
  • 所有版本均安装在本地
  • 不会以任何方式破坏系统默认的 Python 安装
  • 每个Python版本都通过virtualenv隔离

步骤如下:

  1. 如果您以其他方式安装了多个额外的 python 版本,请删除它们,例如,删除 $HOME/.local/lib/python3.x, , ETC。(也是全局安装的)。不过,不要触及系统的默认 python3 版本。

  2. 下载不同python版本的源码,目录结构如下:

    $HOME/
        python_versions/ : download Python-*.tgz packages here and "tar xvf" them.  You'll get directories like this:
          Python-3.4.8/
          Python-3.6.5/
          Python-3.x.y/
          ...
    
  3. 在每个“Python-3.x.y/”目录中,执行以下操作(执行 不是 在任何步骤中使用“sudo”!):

    mkdir root
    ./configure --prefix=$PWD/root 
    make -j 2
    make install
    virtualenv --no-site-packages -p root/bin/python3.x env
    
  4. 在“python_versions/”创建如下文件:

    env_python3x.bash:
    
    #!/bin/bash
    echo "type deactivate to exit"
    source $HOME/python_versions/Python-3.x.y/env/bin/activate
    
  5. 现在,无论何时您想选择 python3.x,都可以这样做

    source $HOME/python_versions/env_python3x.bash
    

    进入虚拟环境

  6. 在 virtualenv 中,安装你最喜欢的 python 包

    pip install --upgrade package_name
    
  7. 要退出 virtualenv 和 python 版本,只需输入“deactivate”

这可能是完全错误的事情(我是一个python小白),但我只是去中和编辑PIP文件

#!/usr/bin/env python3 <-- I changed this line.

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

有关具体窗口: \路径\到\ python.exe -m PIP安装PACKAGENAME 作品。

如果你有多个版本以及多个体系结构(32位,64位),就需要在您的版本的末尾添加一个或-32 -64

有关窗户,进入cmd,然后键入PY --list,它会产生您所安装的版本。该列表将如下所示:

Installed Pythons found by py Launcher for Windows
 -3.7-64 *
 -3.7-32
 -3.6-32

完整的命令作为一个例子将是:

py -3.6-32 -m pip install (package)

如果你想获得更多的深入,对包之后的特定版本的Python,使用==(版本)安装包的特定版本。作为一个例子,

py -3.6-32 -m pip install opencv-python==4.1.0.25
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top