Bash:Python3:找不到命令(Windows,discord.py)

时间:2016-12-01 15:12:34

标签: pip python-3.5 git-bash discord

我一直在尝试配置不和谐API discord.py以及在我的服务器上运行Red-MusicBot。我已经安装了Python 3.5,并添加了PATH变量(我点击了安装中的“将Python添加到PATH”选项)。这是我的路径变量目前的样子:

C:\Users\Corey Rigney\AppData\Local\Programs\Python\Python35\Scripts\
C:\Users\Corey Rigney\AppData\Local\Programs\Python\Python35\

这些是与Python相关的唯一内容。现在,作为discord.py安装过程的一部分,它希望我在Git Bash中运行此命令:

$ git clone https://github.com/Rapptz/discord.py
$ cd discord.py
$ python3 -m pip install -U .[voice]

前两行完美无缺,但第三行返回:

bash: python3: command not found

我还从GitHub克隆了pip作为一个尝试修复,虽然python安装网站说它包装了3.5。

我正在运行Windows 64,64位。

这样做的总体目标是安装一个不和谐音乐机器人,如果它能帮助我发布尝试运行时遇到的错误。

7 个答案:

答案 0 :(得分:12)

在使用git bash的Windows中,python3对我不起作用:

$ python --version
Python 2.7.15

但是如果我使用py

$ py --version
Python 3.8.1

不知道为什么,但是有效

答案 1 :(得分:8)

在Windows上,python可执行文件的正常名称是python.exe(控制台程序)或pythonw.exe(对于GUI程序)。

python可执行文件有时在某些平台上称为python3,其中默认(python)是旧的python 2.在许多基于UNIX(包括Linux和OS X)的系统上,python系统实用程序使用2,更改它可能会对这些平台产生不良后果,因此名称为" python3"。

在Windows上你应该没问题 - 在Windows上还有其他问题,但除非你尝试使用多个python版本,否则你不会得到它们。

答案 2 :(得分:8)

在python安装("c:\\Installationpath\Python3.6.0")路径中,您会找到"python.exe",只需在同一位置复制粘贴并将其重命名为"python3.exe",现在在命令提示符下,您可以检查{ {1}}命令应该显示你的python安装。别忘了打开一个新的终端。

答案 3 :(得分:1)

以上所有解决方案都不适合我,但是当我写python3 -m pip install discord.py而不是写C:\InstallPath\python.exe -m pip install discord.py时,我就能在Python 3.7上找到成功了

之所以可行,是因为尽管命令python3在cmd中不可用,但python核心文件的路径仍然有效,并且像python3命令那样使用参数。

注意:正常的python命令对我不起作用,因为我已经安装了2个命令。由于某种原因,不和谐要求3.5及以上?

答案 4 :(得分:1)

而不是复制可执行文件,而是添加充当python3 的脚本。

带有#!python3 shebang行的Python 3脚本将无法运行,因为Windows上不存在python3.exe-py -3可以实现。

要解决此问题,请将此脚本作为python3添加到您的PATH中:它会根据操作系统调用正确的Python命令(在Windows和Linux)。

#!/usr/bin/env bash
# Fix problem with `python3` shebang on Windows MSYS Bash

if [[ "$OSTYPE" =~ ^msys ]]; then
  py -3 $*
else
  python3
fi

答案 5 :(得分:1)

在Windows 10上,您可能会发现pypythonpython3不起作用的地方工作。

答案 6 :(得分:1)

复制 Python 3 可执行文件 python.exe 并将其重命名为 python3.exe 在另一个答案中建议是一个糟糕的主意,请不要这样做它,因为您每次将 Python 升级到更新版本时都必须重复它,而且您很可能会忘记它,并且您会惊讶于升级后您的 Python 损坏了。

我建议使用以下简单设置。

解决方案:符号链接python3.exe

只需在您的 python3.exe 环境变量(但不是在 Python 3 安装目录下)的目录中创建一个名为 PATH 的符号链接,指向Python 3 可执行文件 python3/python.exe。即使您升级 Python,符号链接仍会留在那里并继续指向正确的可执行文件(因为它位于 Python 3 安装目录之外,因此即使删除过时 Python 的整个目录并将新 Python 放置在那里,它也不受影响) .

准备起来很容易:

  1. 执行提升的 Powershell Core (pwsh.exe)、Powershell (powershell.exe) 或 Windows 命令外壳 (cmd.exe)
  2. 确定要在何处创建符号链接:
    • 在您的 PATH 环境变量中选择一个目录(在 Powershell 中使用 echo $env:PATH 或在 echo %PATH% 中使用 cmd.exe 来打印变量内容)
    • 将您喜欢的任何目录添加到 PATH 变量(见下文)
  3. 导航到您在上一步中选择的目录,并在那里创建一个名为 python3.exe 的符号链接,指向 Python 3 可执行文件(target 参数),两个路径都可以是绝对路径或相对路径:

现在,如果您从任何目录执行 python3python3.exe,Windows 会在当前目录中搜索它,然后在 PATH 环境变量中搜索所有目录。它找到您创建的符号链接,将其“重定向”到 Python 3 可执行文件,然后 Windows 执行它。

注意事项

哪个版本执行 python 命令?

当同时安装 Python 2 和 3 时,命令 python 执行的 Python 版本取决于 PATH 环境变量中 Python 目录的顺序。

当您执行一个命令并且在当前工作目录中找不到它时,Windows 将遍历 PATH 变量中的所有目录,同时保持它们在那里列出的顺序,并执行名称匹配的第一个可执行文件命令(并停止搜索)。

因此,当您的 PATH 变量包含顺序为 c:\dev\python2\;c:\dev\python3;... 的 Python 安装目录时,python 命令会在 python.exe 中执行 c:\dev\python2\,因为它是最先找到。

顺序取决于您安装两个 Python 版本的顺序。每次安装都会在 PATH 的开头添加(如果您选中该选项)其安装目录,因此当您只执行 python 时,将执行最近安装的版本。但是,您当然可以手动对它们重新排序。

pip 没有问题,因为已经有一个名为 pip3.exe 的可执行文件位于 Python 安装期间自动添加到 PATH 的目录中(<installation-root>\Scripts,所以只需对 Python 3 的 pip 使用 pip3,对 Python 2 的 pip 使用 pip/pip2

编辑环境变量

  1. Win + 暂停/中断或右键单击此PC,打开Windows的关于对话框并选择属性
  2. 点击设置对话框右侧的高级系统设置链接,打开系统属性对话框
  3. 点击系统属性对话框底部的环境变量...按钮,打开环境变量对话框
  4. 在这里,您可以管理用户变量,如果您有管理员权限,那么还可以管理系统变量