【问题标题】:pip install does not, but python -m pip install doespip install 没有,但 python -m pip install 有
【发布时间】:2025-09-03 11:15:02
【问题描述】:

我对以下行为感到困惑。我在 Windows 7 上安装了 Python 3.4。Pip 随 Windows 发行版一起安装。
当我尝试安装 virtualenv(或任何其他包)或执行任何其他命令时,什么也没有发生:

C:\Python34\pip install virtualenv
(nothing happens)
C:\Python34\pip list
(nothing happens)

但是,python -m 变体确实有效。

C:\Python34\python -m pip install virtual env
C:\Python34\python -m pip list

我知道 Python 打包用户指南在 Installing Packages 部分中说要使用 python -m pip install [package name]。但是,“pip install [包名]”是否也可以工作?
我在a previous post 发现他们做同样的事情,那么为什么会有不同的行为呢?

【问题讨论】:

  • 我的问题听起来与此处报告的问题相似:link
  • 与问题33724228 相同。在那里,解决方法也是 python -m,但没有找到根本原因...

标签: python python-3.x pip


【解决方案1】:

pip 安装到Scripts 子目录中。

试试C:\Python34\Scripts\pip -V看看你在运行什么。

C:\>C:\Python34\Scripts\pip -V
pip 7.1.2 from C:\Python34\lib\site-packages (python 3.4)

否则您的pip.exe 进程可能会被正在运行的防病毒软件阻止。

【讨论】:

  • 当我这样做时,与其他 pip 命令发生的情况相同:没有任何反应,似乎程序挂起。在 Windows 任务管理器中,奇怪的是,我看到了 3 个 pip.exe 进程。它们都使用 0 CPU 和很少的内存。
  • 我只能猜测你的 pip.exe 进程被正在运行的杀毒软件阻止了。
  • 你看准了!我停用了我的防病毒软件(Avast Free Antivirus)。现在 pip 正在工作。我没想到。谢谢。现在我将看看如何解释 Avast 以停止骚扰我。谢谢!
  • 删除? :) 我很高兴它有所帮助。更新了其他人的答案以提供帮助。
【解决方案2】:

(以 Radek 的回答为基础)使用 pip(以及 Scripts 中的类似脚本)存在两个问题。首先是使操作系统能够找到文件。您必须提供正确的绝对路径,或者.../Pythonxy/Scripts 必须在 PATH 上。我相信在安装时将后者设为 true 是可选的。

如果您确实输入了您发布的内容,我很惊讶 Windows 没有响应 Win 7 版本的“c:\programs\python35\pip 未被识别为内部或外部命令、可运行程序或批处理文件”。 (来自我的 Win 10 机器)。

第二个,当安装了多个版本的 Python 时,运行哪个 pip(使用哪个 python 二进制文件)的歧义。即使所有 Python 安装都具有相同的 pip 版本,它也必须使用其 site-packages 目录是预期目标的版本运行。即使在命令行运行pip install xyz,它也可能会或可能不会执行预期的操作。

这两个问题的可靠解决方案是指定一个特定的 python 二进制文件(无论是.../python.exepythonpython2python3 还是 py -x.y,然后让该二进制文件找到“它的”pip 和将其指向“正确的”站点包。

【讨论】:

  • 目录,在我的PATH环境中。什么时候回显 %PATH%,我得到 C:\Python34\;C\Python34\Scripts\; ... .所以这似乎很好。