Powershell 脚本安装 python 和 pip 包

Powershell 脚本安装 python 和 pip 包

我正在尝试编写一个 powershell 脚本,它将安装 Python,然后继续安装 pip 包 conan。安装成功,但无法识别名称 conan The term 'conan' is not recognized as the name of a cmdlet

Write-Host "Installing python"

Start-Process C:\CppBuildTools\Python\python-3.10.7-amd64.exe '/quiet InstallAllUsers=1 PrependPath=1' -wait

Write-Host "python installation completed successfully"

Write-Host "Reload environment variables"
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Write-Host "Reloaded environment variables"

Write-Host "Installing conan"

pip install conan

Write-Host "conan installation completed successfully" 

此脚本为所有用户安装 Python 并将其添加到 PATH。到目前为止,似乎一切都符合预期,但是执行时pip install conan已经出现了一个奇怪的日志Defaulting to user installation because normal site-packages is not writeable。使用 GUI 安装程序为所有用户安装 Python 并添加到 Path 选项,然后使用 安装 conan 时,不会出现此日志pip install conan。有人能帮我理解使用 powershell 脚本时有什么区别吗?

答案1

你的 启动进程命令 启动一个与您的脚本分开的新进程。

这意味着它并行执行,并且在重新计算环境之前肯定不会完成。

您应该-NoNewWindow在命令中添加参数,描述如下:

没有新窗口

在当前控制台窗口中启动新进程。默认情况下,在 Windows 上,PowerShell 会打开一个新窗口。在非 Windows 系统上,您永远不会看到新窗口。

相关内容