使用特定TargetDir在/ quiet模式下安装Python可执行文件

时间:2018-04-09 13:57:45

标签: python installation appveyor

我在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']

安装程序返回带有以下日志文​​件的非零状态代码:

https://pastebin.com/jmMpiXmH

(抱歉使用了pastebin,它很长,显然stackoverflow有字符限制)

安装程序退出后,请求的TargetDirC:\\Python363-x64)中未安装任何python。实际上,目录甚至没有创建,如果我事先手动创建它也无济于事。

我尝试先运行/uninstall(因为已安装的appveyor版本可能会跳过安装),但同样的问题仍然存在。我已经尝试了/passive/quiet选项。我也尝试过其他python版本(3.5.0+)但没有运气。 (早期版本有.msi安装程序,并且安装正确)

我想知道是否有其他人可以重现这个问题,或者你知道我做错了什么。

2 个答案:

答案 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