Bash:Python3:找不到命令(Windows,discord.py)
Posted
技术标签:
【中文标题】Bash:Python3:找不到命令(Windows,discord.py)【英文标题】:Bash: Python3: command not found (Windows, discord.py) 【发布时间】:2017-04-16 07:05:59 【问题描述】:我一直在尝试配置 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 10、64 位。
这样做的总体目标是安装一个不和谐的音乐机器人,如果它可以帮助我发布我在尝试运行它时遇到的错误。
【问题讨论】:
git-bash
和 bash
是两个完全不同的程序。另外,看看this question
你确定它叫python3
而不仅仅是python
?
@Aserre 我查看了它并运行了“env|grep PATH”命令。它返回了上面在常规 PATH 部分中提到的两个 python 路径。
python 可执行文件有时在某些平台上称为python3
,其中默认 (python
) 是旧的 python 2. OS X,例如。
不!您安装了 3.5,这是当前的稳定版本。你在 Windows 上,所以我不希望那里已经有 python。在许多基于 UNIX(包括 Linux 和 OS X)的系统上,系统实用程序使用 python 2,更改它可能会对这些平台产生不良后果,因此命名为“python3”。在 Windows 上你应该没问题 - Windows 上还有其他问题,但除非你尝试使用多个 python 版本,否则你不会得到这些问题。
【参考方案1】:
在python安装的("c:\\Installationpath\Python3.6.0"
)路径中你会找到"python.exe"
,只需复制粘贴到同一个地方并重命名为"python3.exe"
,现在在命令提示符下你可以检查python3
命令应该显示你的蟒蛇安装。不要忘记打开一个新终端。
【讨论】:
这帮助我把它复制粘贴到同一个地方并将其重命名为“python3.exe”,现在在命令提示符下你可以检查 python3 2019 年为我工作 在不到 10 秒内修复。欣赏它! Win10、VS 代码、Python 3.8 这样一个简单而漂亮的解决方案 这是一个非常糟糕的建议,如果您想避免将来出现问题和浪费时间,请不要这样做。这很糟糕,因为每次将 Python 升级到新版本时都必须重复它。您很可能会忘记它,最终会得到一个损坏或行为怪异的 Python。其他答案中有更好的建议,请检查它们。例如,您可以按照此答案中的建议创建python3.exe
文件,而不是 Python 解释器的副本,it's just a symbolic link(指向它的指针)。【参考方案2】:
在 Windows 上,python 可执行文件的正常名称是python.exe
(控制台程序)或pythonw.exe
(用于 GUI 程序)。
在某些平台上,python 可执行文件有时称为python3
,其中默认 (python
) 是旧的 python 2。在许多基于 UNIX(包括 Linux 和 OS X)的系统上,python 2 用于系统实用程序,更改它可能会对这些平台产生不良后果,因此名称为“python3”。
在 Windows 上你应该没问题 - Windows 上还有其他问题,但除非你尝试使用多个 python 版本,否则你不会得到这些问题。
【讨论】:
请问,我已经安装并检查了我的 Windows 10 系统中是否有 Python 版本 3.6.5(使用python --version
从 cmd 检查)。现在我需要运行一个 python 文件,正如作者所说,应该使用python3.6 baseline.py
来执行它。我使用 git bash 运行代码,但是在输入上述命令时,我收到错误 bash: python3.6: command not found
。如果我只使用python baseline.py
,它似乎在尝试运行..尝试以这种方式执行它是错误的吗?
您只需要在 Windows 上运行 python baseline.py。这应该足够了。【参考方案3】:
在使用 git bash 的 windows 中,python3 对我不起作用:
$ python --version
Python 2.7.15
但是如果我使用 py
$ py --version
Python 3.8.1
不知道为什么,但是成功了
【讨论】:
我猜是因为你同时安装了 pythion2 和 python3。【参考方案4】:不要复制可执行文件,而是添加一个充当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
【讨论】:
我必须将“py -3 $*”行更改为“python $*”以使其与 conda envs 一起使用。 文件 "在 Windows 10 上,您可能会发现 py
在 python
或 python3
不适用的情况下工作。
【讨论】:
【参考方案6】:复制 Python 3 可执行文件 python.exe
并将其重命名为 python3.exe
在另一个答案中建议是一个糟糕的主意,请不要这样做,因为你每次您将 Python 升级到较新版本时都必须重复此操作,您很可能会忘记它,并且您会惊讶于升级后您的 Python 坏了。
我建议进行以下简单设置。
解决方案:符号链接python3.exe
只需在PATH
环境变量中的目录中创建一个名为python3.exe
的符号链接(但它不是 在Python 3 安装目录下)指向Python 3 可执行文件@ 987654329@。即使您升级 Python,符号链接仍保留在那里并始终指向正确的可执行文件(由于它位于 Python 3 安装目录之外,因此即使删除了过时 Python 的整个目录并在其中放置了新 Python,它也不会受到影响) .
很容易准备:
-
执行提升的 Powershell Core (
pwsh.exe
)、Powershell (powershell.exe
) 或 Windows 命令 shell (cmd.exe
)
确定要在何处创建符号链接:
在您的PATH
环境变量中选择一个目录(在Powershell 中使用echo $env:PATH
或在cmd.exe
中使用echo %PATH%
来打印变量内容)
将您喜欢的任何目录添加到PATH
变量(见下文)
导航到您在上一步中选择的目录,并在那里创建一个名为 python3.exe
的符号链接,指向 Python 3 可执行文件(target
参数),两个路径都可以是绝对的或相对的:
在 Powershell 中,使用 New-Item
command with the -Type SymbolicLink
option:
New-Item -Type SymbolicLink -Path python3.exe -Target c:\<Python3-installation-directory>\python.exe
在cmd.exe
中,使用mklink
command:
mklink python3.exe c:\<Python3-installation-directory>\python.exe
现在,如果您从任何目录执行python3
或python3.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
命令会执行c:\dev\python2\
中的python.exe
,因为它首先被发现。
顺序取决于您安装两个 Python 版本的顺序。每次安装都会在PATH
的开头添加(如果您选中该选项)其安装目录,因此当您仅执行python
时将执行最近安装的版本。当然,您也可以手动重新排序。
点
pip 没有问题,因为已经有一个名为 pip3.exe
的可执行文件位于 Python 安装过程中自动添加到 PATH
的目录中(<installation-root>\Scripts
,所以只需使用 pip3
作为Python 3 的点子和pip
/pip2
用于 Python 2 的点子。
编辑环境变量
-
按 Win + Pause/Break 或右键单击 This PC 打开 Windows 的 关于 对话框并选择属性
通过单击设置对话框右侧的链接高级系统设置打开系统属性对话框
通过单击系统属性对话框底部的环境变量...按钮打开环境变量对话框
在这里,您可以管理用户变量,如果您有管理员权限,还可以管理系统变量
【讨论】:
【参考方案7】:上面的解决方案都不适合我,但是,当我写 python3 -m pip install discord.py
而不是写 C:\InstallPath\python.exe -m pip install discord.py
时,我能够使用 Python 3.7 获得成功
这可能有效,因为虽然命令 python3
在 cmd 中不可用,但 python 核心文件的路径有效,并且像 python3
命令一样接受参数。
注意:正常的python
命令对我不起作用,因为我已经安装了 2 个。 Discord 出于某种原因需要 3.5 及更高版本?
【讨论】:
以上是关于Bash:Python3:找不到命令(Windows,discord.py)的主要内容,如果未能解决你的问题,请参考以下文章