Установка Pip-3.2 на Cygwin

85

У меня Python 3 установлен на Cygwin. Однако я не могу установить пакеты Python 3 через pip. Есть ли способ сделать это?

Дэвид Й. Стивенсон
источник
1
почему бы и нет? вы установили pip для этой установки python? Какая у вас ошибка?
mata
Pip установлен, но устанавливает версию пакета для Python 2. Например, мой скрипт, требующий возврата pyyaml ImportError: No module named yaml, даже после успешного выполнения pip install pyyaml.
Дэвид Й. Стивенсон
1
Тогда pipсценарий не запускается с правильной версией Python. Попробуйте /path/to/python3 -m pip install ...вместо этого. Также проверьте шебанг скрипта pip.
mata
@mata FYI, Python 2 также установлен. usr/bin/python3 -m pip install pyyamlвозвращается /usr/bin/python3: No module named pip. Таким образом, мой первоначальный вопрос; как установить pip-3 на cygwin?
Дэвид Й. Стивенсон
1
python3 -m ensurepipи python2 -m ensurepip. Посмотрите на python.org/dev/peps/pep-0453
gavenkoa

Ответы:

129

1) При установке cygwin убедитесь, что вы установили python / python-setuptools из списка. Это установит пакет easy_install.

2) Введите следующую команду:

easy_install-a.b pip   

Вы должны заменить a.bсвою версию Python, которая может быть 2.7, 3.4 или любой другой.

Moovon
источник
4
Этот ответ отлично сработал для меня. Мне пришлось сделать пару дополнительных шагов, потому что я работаю в университете: во-первых, я перешел на свой путь установки (c: / cygwin64 / bin /). Затем автозаполнение помогло мне найти файл простой установки, названный немного иначе: easy_install 2.7.9
Protomancer
6
Я сделал это, чтобы easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
остаться
6
для python3 используйте пакеты python3 и python3-setuptools . Это очевидно, но можно забыть о питона 3 -setuptools
симон
2
И не забывайте версию (т.е. -2.7). У меня на компьютере был другой дистрибутив Python, и easy_install вызывал его, а не cygwin.
jtbr
44

Если у вас более одной установки python, вам необходимо установить pip (и, возможно, также setuptools) для каждой установки отдельно.
Для этого вы можете сначала загрузить ez_setup.pyи запустить его с помощью python3:

/usr/bin/python3 ez_setup.py

Это должно установить setuptools, а также создать easy_installсценарий для вашей версии Python, например /usr/bin/easy_install-3.2, который вы можете использовать для установки pip:

/usr/bin/easy_install-3.2 pip

Это установит pip в каталог пакетов вашего сайта python3 и снова создаст скрипт /usr/bin/pip-3.2, который вы можете использовать для установки пакетов для этой версии python.

Или вы можете следовать инструкциям по установке здесь и здесь .

мата
источник
2
Превосходно! После этого ответа я смог решить свою проблему с cygwin.
Я получаю "OSError: [Errno 13] Permission denied" при установке в cygwin. У меня есть права администратора на этой машине.
arulraj.net
2
Ссылка на ez_setup.py мертва
spartygw
29

Я думаю, что альтернативные инструкции по установке, связанные с mata, самые простые:

Чтобы установить pip, безопасно загрузите get-pip.py .

Затем запустите следующее (для чего может потребоваться доступ администратора):

python get-pip.py
Свик
источник
2
fwiw, кажется, это ничего не делает под cygwin - не знаю почему :(
Anthony Sottile
2
Работает под Бабуном, на Windows 10 x64
xizdaqrian
15

Поскольку OP конкретно говорит о Python3, я думаю, нам нужно указать это на тот случай, если у пользователя уже установлен Python2, что очень вероятно.

# If you don't have Python3 already, use apt-cyg:
apt-cyg install python3

# First update pip, pip2 
pip2 install --upgrade pip 

# Install pip3:
python3 -m ensurepip

# Finally update pip3:
pip3 install --upgrade pip

$ pip3 -V
pip 9.0.1 from /usr/lib/python3.4/site-packages (python 3.4)

Кстати. Есть несколько форков apt-cyg , но лучше всего поддерживается kou1okada , она вам понравится.


РЕДАКТИРОВАТЬ: 2018-11-15

Поскольку я начал не использовать virtualenv , мне недавно пришлось обновить установку Cygwin Python3, и в процессе я реализовал несколько вещей, которые должны были быть очевидными, но о которых легко забыть.

  • При установке и использовании Python3 в Cygwin (и, вероятно, в большинстве других дистрибутивов * nix), устанавливайте только базовый интерпретатор Python3 как пакет Cygwin. С этого момента используйте только установщик pip .

  • После того, как вы установили или обновили какие-либо пакеты python3 с помощью pip , ваш менеджер пакетов Cygwin сообщит, что ваш пакет "Incomplete". Это потому, что pip заменил / обновил файлы в этом пакете. Проверьте с: cygcheck.exe -c |grep Incomplete.
    Не переустанавливайте эти пакеты с Cygwin.

# cygcheck.exe -c |grep Incomplete
python3-setuptools      34.3.2-1         Incomplete

Итак, то, что я сделал, было очищено от всех пакетов Cygwin, связанных с python3, кроме самого Python3. Затем я вновь установлен только один необходимый: python3-setuptools.

# apt-cyg remove python3-setuptools
apt-cyg install python3-setuptools

# Fix pip3 symlink (or just pip if you don't have python2)
ln -s /usr/bin/pip3.6 /usr/bin/pip3

# That also installs the Cygwin packages:  
# python3-appdirs, python3-packaging, python3-pyparsing, python3-six

# Now, update setuptools with pip:
pip3 install -U --force-reinstall --only-binary=:all: --no-clean --no-cache-dir setuptools

# pip list |grep setuptools
setuptools          40.5.0

Это также должно было переустановить все зависимости setuptools с последними обновлениями.

С этого момента сделайте себе одолжение и начните использовать виртуальную среду.

not2qubit
источник
это ensurepipнеобходимо из - за Cygwin? Обычно pipна борту, см. Здесь
Тимо
@Timo, для меня это было, по какой-то причине мне не хватало pip3 для python3
Lepidopteron
Пока вы pipустановили, вы всегда можете создать символическую ссылку /usr/bin/, но, возможно, более элегантно использовать собственное исправление surepip . IDK, если у меня уже была старая версия или она была установлена ​​вместе setuptools, но ensurepipпакет у меня не установлен.
not2qubit
2
+1 за то, что рекомендую вилку kou1okada для apt-cyg, она является наиболее полнофункциональной и поддерживаемой на сегодняшний день, когда она использовалась в течение многих лет.
Прометей
2

В Windows вы можете использовать pip для установки пакетов. Если у вас есть несколько установок python под cygwin, укажите полный путь к python, например Python 2

/usr/bin/python2.7 -m pip install pyyaml

Python 3

/usr/bin/python3.6 -m pip install pyyaml

Если у вас не установлен pip, установите его, используя команду ниже

/usr/bin/python2.7 -m ensurepip 

или же

/usr/bin/python3.6 -m ensurepip
Nitin_k29
источник
0

Я только что узнал, вдохновленный https://www.scivision.co/install-pip-in-cygwin/ и предыдущий ответ, что вместо использования pip вам просто нужно использовать pip2 для python2 или pip3 для python 3 в cygwin на окнах. Целый день думал об этом ...

DanielW
источник