我正在尝试编写一个 powershell 脚本,它将安装 Python,然后继续 pip 包、柯南安装。安装成功,但名称 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
已经有一个奇怪的 log Defaulting to user installation because normal site-packages is not writeable
。使用 GUI 安装程序为所有用户安装 Python 并添加到 Path 选项,然后使用pip install conan
. 有人可以帮我理解使用 powershell 脚本有什么区别吗?
您的 Start-Process 命令 会启动一个与您的脚本分开的新进程。
这意味着它是并行执行的,并且在您重新计算环境之前肯定没有完成。
您应该将
-NoNewWindow
参数添加到命令中,描述为: