Let*_*lle 3 python powershell pip
我想通过 powershell 脚本运行 python 模块升级。第一行有效。
但我不知道如何将文件正确读入第二个 pip 行。我收到此错误:
Could not find a version that satisfies the requirement Get-Content
pip freeze| Out-File requirements.txt
pip install --upgrade Get-Content requirements.txt
Remove-Item requirements.txt
Run Code Online (Sandbox Code Playgroud)
更新:现在可以使用更改后的第二行。
pip freeze| Out-File requirements.txt
foreach($line in Get-Content requirements.txt)
{
pip install --upgrade $line
}
Remove-Item requirements.txt
Run Code Online (Sandbox Code Playgroud)
更新 2 现在,在 python 3.6 中,我使用这个脚本。
$(
$exclude = 'virtualenv', 'prompt-toolkit'
pip list --outdated --format=freeze | ForEach{ $_.split("=")[0]} | Where-Object { $exclude -notcontains $_ } | ForEach { pip install -U $_ }
) *>&1 >> Python_Modules_Updates_Log.txt
Run Code Online (Sandbox Code Playgroud)
实现目标的最简单方法:
pip freeze | ForEach-Object { pip install --upgrade $_ }
Run Code Online (Sandbox Code Playgroud)
每个输出行都pip freeze通过管道传递,并且ForEach-Object脚本块pip install --upgrade对每个 ( $_) 进行调用。
至于你尝试过的:
pip install --upgrade Get-Content requirements.txt # !! BROKEN
Run Code Online (Sandbox Code Playgroud)
Get-Content和requirements.txt只是传递给 的附加参数pip,它解释了您看到的错误消息。
pip- 没有-一次-r只接受一个pip install --upgrade (Get-Content requirements.txt)包(需求说明符),所以即使是类似的东西也不会起作用(它会将文件行requirements.txt作为单独的参数传递)。
对于-r,需要文件名参数,因此您可以尝试:
pip install --upgrade -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
请注意,从 Windows PowerShell v5.1 / PowerShell Core v6.0.2 开始,PowerShell 不支持Bash 样式的进程替换,其中命令的输出可以充当临时文件:
pip install --upgrade -r <(pip freeze) # !! WISHFUL THINKING - does NOT work yet
Run Code Online (Sandbox Code Playgroud)
然而,这样的功能正在考虑之中。
| 归档时间: |
|
| 查看次数: |
10112 次 |
| 最近记录: |