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 次  |  
        
|   最近记录:  |