在Cygwin上安装Pip-3.2


84

我在Cygwin上安装了Python 3。但是,我无法通过安装Python 3软件包pip。有没有办法做到这一点?


1
为什么不?您是否为此Python安装安装了pip?你得到什么错误?
mata 2013年

Pip已安装,但会安装软件包的python 2版本。例如,ImportError: No module named yaml即使成功运行,我的脚本也需要pyyaml返回pip install pyyaml
David Y. Stephenson

1
然后,该pip脚本将无法使用正确的python版本运行。试试吧/path/to/python3 -m pip install ...。另外,请检查pip脚本的shebang。
mata

@mata FYI,还安装了Python 2。usr/bin/python3 -m pip install pyyaml返回/usr/bin/python3: No module named pip。因此,我最初的问题;如何在cygwin上安装pip-3?
David Y. Stephenson,

1
python3 -m ensurepippython2 -m ensurepip。期待python.org/dev/peps/pep-0453
吉通科阿

Answers:


128

1)在安装cygwin时,请确保从列表中安装python / python-setuptools。这将安装“ easy_install”软件包。

2)输入以下命令:

easy_install-a.b pip   

您必须将a.bpython版本替换为2.7或3.4或其他版本。


4
这个答案对我很有用。因为我在大学工作,所以不得不采取一些额外的步骤:首先,我导航到我的安装路径(c:/ cygwin64 / bin /)。然后自动完成帮助我找到了名称略有不同的简易安装文件:easy_install 2.7.9
Protomancer 2015年

6
我这样做是为了最终避免蛋的状态:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
Anthony Sottile

6
对于python3,请使用python3&python3-setuptools软件包。这很明显,但是您可能会忘记python 3 -setuptools
simon

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问题。

在cygwin中安装时出现“ OSError:[Errno 13]权限被拒绝”此错误。我在那台机器上拥有管理员权限。
arulraj.net 2014年

2
指向ez_setup.py的链接已死
spartygw


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安装,并意识到在此过程中有些事情本来是显而易见的,但很容易被遗忘。

  • 在Cygwin(以及可能的大多数其他* nix发行版)上安装和使用Python3时,将基本的Python3解释程序安装为Cygwin软件包。从那时起,仅使用pip安装程序。

  • 使用pip安装或更新任何python3软件包后,Cygwin软件包管理器将抱怨您的软件包是"Incomplete"。这是因为pip替换/更新了该软件包中的文件。检查:cygcheck.exe -c |grep Incomplete
    不要用Cygwin重新安装这些软件包。

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

因此,我所做的就是清除了所有与python3相关的Cygwin软件包,除了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依赖项。

从现在开始,帮自己一个忙,开始使用虚拟环境。


ensurepip因为cygwin是必要的?通常,pip在船上,请参见此处
Timo '18

@Timo,对我而言,无论出于什么原因,我都缺少python3的pip3
Lepidopteron

只要您已pip安装,就可以始终在中进行符号链接/usr/bin/,但使用本机surepip修复程序可能更优雅。IDK(如果我已经有旧版本或与一起安装)setuptools,但我没有ensurepip安装软件包。
not2qubit

2
+1推荐kou1okada的apt-cyg叉子,它是迄今为止功能最齐全,维护最完善的,已经使用了多年。
普罗米修斯

2

在Windows上,您可以使用pip安装软件包。如果您在cygwin下安装了多个python,请提供完整的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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.