PowerShell中的Python版本

daolsyd0  于 2023-02-04  发布在  Shell
关注(0)|答案(3)|浏览(204)

我之前在Windows 10上运行的是python 2.7.11。
今天,我下载并安装了python 2.7.13,但PowerShell版本仍然是2.7.11:

python --version
Python 2.7.11

1.如何检查我的PC上安装的所有python版本?
1.如何卸载python 2.7.11?
1.如何将python 2.7.13设置为在PowerShell中启动的默认python版本?

jgwigjjp

jgwigjjp1#

在PowerShell中,Get-Command python | fl *会告诉你它正在查找哪个Python可执行文件,并显示它在哪里的详细信息。
1.你可以选择 * 设置-〉应用程序和功能 *,或者 * 控制面板-〉程序和功能 *,它们会显示你安装的Python的不同版本,但是如果Python是作为其他工具包或程序的一部分安装的,这可能还不够。
1.如果Python 2.7.11在那里,选择它并点击uninstall,如果不在那里,看看你是否能从前面Get-Command的输出中知道它是和什么一起安装的,然后决定是否要删除它。
1.帮助about_Command_Precedence中解释了PowerShell如何在您键入命令时选择要运行的内容,具体如下:
1.别名
1.功能
1.命令
1.本机Windows命令
在“Native Windows commands”(本机Windows命令)处,它转到PATH环境变量,这是一个用分号分隔的路径名列表,按顺序进行搜索,以查找匹配的可执行文件。
您可以看到带有以下内容的文件夹:

$Env:PATH -split ';'

您还可以看到PowerShell使用以下命令确定要为“python”运行什么

Trace-Command –Name CommandDiscovery –Expression {get-command python} -PSHost

因此,要让Python 2.7.13成为我们要发布的版本,您可以:

eagi6jfj

eagi6jfj2#

这是一个关于python2.7的问题,但是对于3.3以上的版本,给予一个答案可能也是有用的:
以前,安装多个版本的python是很少见的,只将可用的python.exe直接放在PATH中是可以接受的,现在,如果简单地这样放置,多个安装的python版本将会冲突并相互覆盖。
3.3之后,引入了一个python启动器,它可以自动检测和运行所需的版本。它应该放在PATH中,而不是特定的python可执行文件中。
现在最好不要让任何python.exe在默认情况下可用,而是激活临时可用性。例如,你有D:\python_install\python.exe下的许多python版本中的一个。在批处理中,默认情况下python命令正确地以未找到错误结束,但在附加命令SET PATH=D:\python_install\;%PATH%之后,开始像以前一样工作。
因此,在这种现代情况下,Get-Command python | fl *可能不会给予你任何帮助。要运行脚本或获取可用版本,请使用launcher:

  • 确保您拥有它:通过PowerShell中的Get-Command py命令进行测试。如果缺少启动程序,请使用official installer中的复选框进行确保。
  • 如果安装正确,命令**py -0p --list-paths**将给予已安装版本的详细摘要,并且运行脚本的方式不是以前的python main.py,而是类似py -3.5 main.py的命令。运行py --help以获取详细信息。

预期的方式改变了。

mefy6pfw

mefy6pfw3#

我在python3.8中执行powershell命令行语句,

import subprocess
subprocess.call('powershell.exe Get-WmiObject Win32_PnPSignedDriver| select DeviceName, Manufacturer, DriverVersion', shell=True)

运行结果为:

'select' is not an internal or external command, nor an executable program or batch file.

相关问题