我在AppVeyor上安装python 3.5.0+时遇到问题。我用来调用subprocess.check_output
的论据是:
[u'python-3.6.3-amd64.exe',
u'/quiet',
u'TargetDir=C:\\Python363-x64',
u'AssociateFiles=0',
u'Shortcuts=0',
u'Include_doc=0',
u'Include_launcher=0',
u'InstallLauncherAllUsers=0',
u'Include_tcltk=0',
u'Include_test=0']
安装程序返回带有以下日志文件的非零状态代码:
(抱歉使用了pastebin,它很长,显然stackoverflow有字符限制)
安装程序退出后,请求的TargetDir
(C:\\Python363-x64
)中未安装任何python。实际上,目录甚至没有创建,如果我事先手动创建它也无济于事。
我尝试先运行/uninstall
(因为已安装的appveyor版本可能会跳过安装),但同样的问题仍然存在。我已经尝试了/passive
和/quiet
选项。我也尝试过其他python版本(3.5.0+)但没有运气。 (早期版本有.msi
安装程序,并且安装正确)
我想知道是否有其他人可以重现这个问题,或者你知道我做错了什么。
答案 0 :(得分:1)
这是在AppVeyor环境中安装Python 3.6.4的示例PowerShell脚本:
Write-Host "Installing Python 3.6.4 x64..." -ForegroundColor Cyan
Write-Host "Downloading..."
$exePath = "$env:TEMP\python-3.6.4-amd64.exe"
(New-Object Net.WebClient).DownloadFile('https://www.python.org/ftp/python/3.6.4/python-3.6.4-amd64.exe', $exePath)
Write-Host "Installing..."
cmd /c start /wait $exePath /quiet TargetDir=C:\Python36-x64 Shortcuts=0 Include_launcher=1 InstallLauncherAllUsers=1
随意根据您的需要采用它。
答案 1 :(得分:0)
就我而言,在 Powershell 脚本中使用 DefaultAllUsersTargetDir
和/或 DefaultJustForMeTargetDir
而不是 TargetDir
。