我一直在尝试配置不和谐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位。
这样做的总体目标是安装一个不和谐音乐机器人,如果它能帮助我发布尝试运行时遇到的错误。
答案 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上,您可能会发现py
在python
或python3
不起作用的地方工作。
答案 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 放置在那里,它也不受影响) .
准备起来很容易:
pwsh.exe
)、Powershell (powershell.exe
) 或 Windows 命令外壳 (cmd.exe
)PATH
环境变量中选择一个目录(在 Powershell 中使用 echo $env:PATH
或在 echo %PATH%
中使用 cmd.exe
来打印变量内容)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
命令会在 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
。