【问题标题】:Installing Pip-3.2 on Cygwin在 Cygwin 上安装 Pip-3.2
【发布时间】:2013-09-09 14:09:02
【问题描述】:

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

【问题讨论】:

  • 为什么不呢?你为这个 python 安装安装了 pip 吗?你得到什么错误?
  • Pip 已安装,但它安装的是 python 2 版本的包。例如,我需要 pyyaml 的脚本返回 ImportError: No module named yaml,即使在成功运行 pip install pyyaml 之后也是如此。
  • 那么pip 脚本无法使用正确的python 版本运行。请改用/path/to/python3 -m pip install ...。另外,检查 pip 脚本的 shebang。
  • @mata 仅供参考,Python 2 也已安装。 usr/bin/python3 -m pip install pyyaml 返回/usr/bin/python3: No module named pip。因此,我最初的问题;如何在 cygwin 上安装 pip-3?
  • python3 -m ensurepippython2 -m ensurepip。看python.org/dev/peps/pep-0453

标签: python python-3.x cygwin pip


【解决方案1】:

如果您有多个 python 安装,那么您需要为每个安装分别安装 pip(可能还有 setuptools)。
为此,您可以先下载ez_setup.py并使用python3运行它:

/usr/bin/python3 ez_setup.py

这应该安装 setuptools,并为您的 python 版本创建一个easy_install 脚本,例如/usr/bin/easy_install-3.2,可以用来安装pip:

/usr/bin/easy_install-3.2 pip

这会将 pip 安装到您的 python3 站点包目录中,并再次创建一个脚本 /usr/bin/pip-3.2,您可以使用它来安装此 python 版本的包。

您也可以按照herehere 的安装说明进行操作。

【讨论】:

  • 太棒了!按照这个答案,我能够解决我的 cygwin 问题。
  • 我在 cygwin 中安装时收到“OSError: [Errno 13] Permission denied”这个错误。我在那台机器上有管理员权限。
  • ez_setup.py 的链接已失效
【解决方案2】:

我认为mata链接的the alternative install instructions最简单:

要安装 pip,请安全下载get-pip.py

然后运行以下命令(可能需要管理员权限):

python get-pip.py

【讨论】:

  • fwiw,这似乎在 cygwin 下默默地什么都不做——不知道为什么:(
  • 在 Babun 下工作,在 Windows 10 x64 上
【解决方案3】:

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

2) 键入以下命令:

easy_install-a.b pip   

您必须将 a.b 替换为您的 python 版本,可以是 2.7 或 3.4 或其他任何版本。

【讨论】:

  • 这个答案对我很有用。因为我在一所大学工作,所以我不得不采取一些额外的步骤:首先,我导航到我的安装路径 (c:/cygwin64/bin/)。然后让自动完成帮助我找到名称略有不同的简易安装文件:easy_install 2.7.9
  • 我这样做是为了在没有鸡蛋的状态下结束:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
  • 对于 python3,使用 python3 和 python3-setuptools 包。这很明显,但可以忘记 python3-setuptools
  • 别忘了版本(即-2.7)。我的计算机上有另一个 python 发行版,'easy_install' 调用了那个而不是 cygwin 的。
【解决方案4】:

由于 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 依赖项。

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

【讨论】:

  • 是否因为 cygwin 而需要 ensurepip?通常,pip 在船上,请参阅 here
  • @Timo,对我来说是这样,无论出于何种原因,我都错过了 python3 的 pip3
  • 只要你安装了pip,你总是可以在/usr/bin/中进行符号链接,但使用本机ensurepip修复可能更优雅。 IDK 如果我已经有旧版本或者它与setuptools 一起安装,但我没有安装ensurepip 包。
  • +1 推荐 kou1okada 的 apt-cyg 分支,它是迄今为止功能最全、维护最好的,已经使用了多年。
【解决方案5】:

我刚刚了解到,受https://www.scivision.co/install-pip-in-cygwin/ 和之前的答案的启发,您只需在 Windows 上的 cygwin 中将 pip2 用于 python2 或 pip3 用于 python 3,而不是使用 pip。一整天都在想这个……

【讨论】:

    【解决方案6】:

    在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多