Como extrair o Python 3.5+ do instalador?

0

Nas versões abaixo de 3.5.0, havia um instalador .MSI para Windows, que tinha uma opção oculta muito interessante. Essa opção ficou assim:

msiexec.exe /a "file.msi" /qb /L*V "file.log" ALLUSERS=0 TARGETDIR="target" CURRENTDIRECTORY="%~dp0" <additional options>

que basicamente me permite ignorar os direitos de administrador, porque o MSI se transforma em algum tipo de instalador para toda a rede, portanto, a solução alternativa de permissão.

Com o Python 3.5.0 foi introduzido um novo .EXE instalador, que tem .MSI arquivos compactados em si, você pode obtê-los com:

python-3.5.0.exe /layout [optional target directory]

ainda há uma coisa muito chata por aí com esta solução. Quando faço isso, os arquivos .MSI têm um sufixo -d.msi e quando eu descompactar manualmente com o comando msiexec acima, cada arquivo também tem esse sufixo , o que torna uma instalação completamente danificada . Renomear os arquivos não é realmente uma opção, pois cada arquivo tem -d.<file ext> , não -d.msi.<file ext> sufixo, então é muito difícil renomeá-lo de maneira simples com ferramentas como Lote, a menos que eu queira verificar vários casos (por exemplo pastas).

Existe alguma maneira de extrair o conteúdo do instalador para uma pasta separada, como era possível antes de sem qualquer material adicional colocado em Programs and features , como Python 3.5.0 (64bit) ou simlar?

Ou outra pergunta - existe alguma maneira de proibir o instalador de acessar o Programs and features , impedi-lo de pedir privilégios de administrador e registro?

É bastante útil se eu quiser ter várias instalações python não vinculadas a qualquer coisa com o teste como sua finalidade principal. Note que não tenho intenção de usar o python launcher (que py.exe thing), virtualenv ou qualquer outra "solução" alternativa, pois cada um deles permite instalar apenas um single     

por KeyWeeUsr 04.01.2017 / 17:29

1 resposta

1

O instalador do Python aparentemente casual, já que o 3.5 possui os MSIs, eu preciso de embeded e eles não saem. No entanto, há o instalador da Web para cada Python e, com esse, você pode fazer a mesma coisa e obter uma instalação funcional do Python:

python-3.5.0-webinstall.exe /layout <folder>

Isso faz o download dos arquivos% MS_de% MSIs (não Release ou Debug apenas). Em seguida, você precisará filtrar os arquivos que têm PDB e _d.msi suffix, o que é trivial com o Batch agora e você acaba com essa estrutura:

core.msi
dev.msi
doc.msi
exe.msi
launcher.msi
lib.msi
path.msi
pip.msi
python-3.6.0-webinstall.exe
tcltk.msi
test.msi
tools.msi

e um monte de redistribuíveis VS. Dependendo de suas necessidades, talvez você queira excluir os arquivos _pdb.msi , .exe (redists), .msu , _d.msi em seu diretório de trabalho. O resto são _pdb.msi arquivos e arquivos que estendem a funcionalidade do interpretador, como lançador ( Release ), caminho (provavelmente coloca permanentemente python em py.exe ), etc.

Se você executar cada um deles com isso:

msiexec.exe /a <file> targetdir=<folder>

você obtém uma instalação portátil em funcionamento do Python. Note que tal coisa é não oficialmente suportada .

    
por 11.01.2017 / 21:12