Работа с несколькими версиями Python и PIP? - PullRequest
412 голосов
/ 11 мая 2010

Есть ли способ заставить pip хорошо играть с несколькими версиями Python? Например, я хочу использовать pip для явной установки вещей либо на мой сайт 2.5, либо на мой сайт 2.6.

Например, с easy_install я использую easy_install-2.{5,6}.

И да - я знаю о virtualenv, и нет - это не решение этой конкретной проблемы.

Ответы [ 19 ]

6 голосов
/ 01 января 2017

Отсюда: 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

На Windows , используйте средство запуска 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
2 голосов
/ 18 декабря 2017

Большинство ответов здесь касаются проблемы, но я хочу добавить кое-что, что меня постоянно смущало в отношении создания альтернативной установки python в /usr/local на CentOS 7. Когда я устанавливал там, это выглядело как pip работает, так как я мог бы использовать pip2.7 install, и он будет устанавливать модули. Однако я не мог понять, почему моя недавно установленная версия python не видит то, что я устанавливал.

В CentOS 7 оказывается, что в папке /usr/bin уже есть python2.7 и pip2.7. Чтобы установить pip для вашего нового дистрибутива Python, вам нужно специально указать sudo перейти на /usr/local/bin

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

Это должно установить pip2.7 в вашу папку /usr/local/bin вместе с вашей версией python. Хитрость в том, что когда вы хотите установить модули, вам нужно либо изменить переменную sudo $PATH, чтобы она включала /usr/local/bin, либо вам нужно выполнить

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

, если вы хотите установить новый модуль. Мне навсегда понадобилось вспомнить, что sudo не сразу увидел /usr/local/bin.

0 голосов
/ 26 июня 2019

Для окон конкретно: \ path \ to \ python.exe -m pip install PackageName работает.

0 голосов
/ 14 марта 2019

Установка нескольких версий Python и соответствующих пакетов.

Версия Python на том же компьютере с Windows: 2.7, 3.4 и 3.6

Установка всех 3 версий Python :

  • Установил Python 2.7, 3.4 и 3.6 с указанными ниже путями

enter image description here

PATH для всех 3 версий Python :

  • Убедитесь, что переменная PATH (в системных переменных) содержит следующие пути: C: \ Python27 \; C: \ Python27 \ Scripts; C: \ Python34 \; C: \ Python34 \ Scripts; C: \ Python36 \; C: \ Python36 \ Scripts \;

Переименование исполняемых файлов для версий :

  • Изменено имя исполняемого файла python в C: \ Python36 и C: \ Python34 на python36 и python34 соответственно.

enter image description here

Проверено для командной строки со всеми версиями:

enter image description here

Установка пакетов отдельно для каждой версии

enter image description here

0 голосов
/ 15 января 2019

Это, вероятно, совершенно неправильная вещь (я нуб питона), но я просто вошел и отредактировал файл 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())
0 голосов
/ 13 мая 2018

Вот мой взгляд на проблему. Работает на Python3. Основные характеристики:

  • Каждая версия Python скомпилирована из исходного кода
  • Все версии установлены локально
  • Никоим образом не мешает установке Python по умолчанию в вашей системе
  • Каждая версия Python изолирована с помощью virtualenv

Шаги следующие:

  1. Если у вас есть несколько дополнительных версий Python, установленных каким-либо другим способом, избавьтесь от них, например, удалите $ HOME / .local / lib / python3.x и т. Д. (Также глобально установленные). Не трогайте версию 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
    

    для входа в virtualenv

  6. Находясь в virtualenv, устанавливайте ваши любимые пакеты python с помощью

    pip install --upgrade package_name
    
  7. Чтобы выйти из версии virtualenv и python, просто введите «деактивировать»

0 голосов
/ 28 октября 2016

Контекст: Archlinux

Действие:
Установите python2-pip:
sudo pacman -S python2-pip

Теперь у вас есть pip2.7:
sudo pip2.7 install boto

Test (в моем случае мне нужно было «boto»):
Выполните следующие команды:

python2
import boto

Успех: без ошибок.

Выход: Ctrl + D

0 голосов
/ 16 марта 2018

Вы можете перейти, например, к C: \ Python2.7 \ Scripts и затем запустить cmd по этому пути. После этого вы можете запустить pip2.7 установить свой пакет ...

Это установит пакет для этой версии Python.

0 голосов
/ 06 января 2017
Например,

, если вы по умолчанию устанавливаете другие версии (например, 3.5) и хотите установить pip для python 2.7:

  1. скачать пункт на https://pypi.python.org/pypi/pip (смола)
  2. распаковать файл tar
  3. перейдите в каталог файла
  4. sudo python2.7 setup.py install
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...