在windows上安装pythonx64后,无法从exp启动脚本

2024-04-20 13:48:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要为windows上的一个项目安装python3.6.1x64。我卸载了3.6.1 x86并安装了3.6.1 x64。我确保我的路径env var指向新安装。然后我将py文件与正确的python.exe: C: \程序文件\Python36\python.exe 而不是: C: \程序文件(x86)\Python36-32\python.exe在

我可以通过调用python直接从cmd窗口运行脚本: pythonmyscript.py在

但是如果我双击它会显示一个cmd windows bot,里面什么也没有。在

如果我“打开”它不会加载,只要给我等待光标几秒钟。即使在我浏览新的python.exe在

我错过了什么?在

pythonx86的一切都很好

谢谢!在


Tags: 文件项目py路径程序env脚本cmd
1条回答
网友
1楼 · 发布于 2024-04-20 13:48:53

唉,有两个问题发生了。Python安装在某个地方出了问题,3.6.1x64的完全卸载和重新安装修复了这一问题。在

其次,我使用的是Pywinauto,这就是为什么我需要x64来访问x64应用程序的UI。显然,它还需要更高的用户权限,即管理员。所以如果我双击一个脚本,它就会挂起,没有反馈,错误等等,因为启动程序没有管理员权限。在

我没有捕捉到这一点,因为我总是从提升的cmd窗口手动执行python。如果我找到一种方法总是以管理员身份执行启动器,我会在这里更新。在

更新: 下面是一个关于让Python提升Windows上的执行权限的深入讨论: How to run python script with elevated privilege on windows

对于我来说,编写Powershell脚本来完成此任务要容易得多:

# ========================================= Admin Rights =======================================================
function asAdmin
{
    [string]$cmdPath = $args[0]
    if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$cmdPath`"" -Verb RunAs; exit }
}

asAdmin $PSCommandPath

Start-Process "pythonw" "$PSScriptRoot\myPythonScriptWithUI.pyw"

相关问题 更多 >