1

В версиях ниже 3.5.0 не было .MSI для Windows, у которого была действительно хорошая скрытая опция. Этот вариант выглядел так:

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

что в основном позволяет мне игнорировать права администратора, потому что MSI обращается к некоторому типу установщика для всей сети, таким образом, обходной путь разрешения.

С Python 3.5.0 был представлен новый .EXE , который имеет .MSI файлы упакованы в себя, вы можете получить их с:

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

все же есть действительно раздражающая вещь, идущая вокруг с этим решением. Когда я делаю это, то .MSI имеют суффикс -d.msi и когда я вручную распаковываю его с помощью команды msiexec приведенной выше, у каждого файла также есть этот суффикс, что делает его полностью поврежденной установкой. Переименование файлов на самом деле не вариант, так как каждый файл имеет суффикс -d.<file ext> , а не -d.msi.<file ext> , поэтому слишком сложно переименовать его простым способом с помощью таких инструментов, как Batch, если я не хочу проверять наличие нескольких случаев (например, папок).

Есть ли способ извлечь содержимое программы установки в отдельную папку, как это было возможно раньше, без каких-либо дополнительных вещей, добавляемых в Programs and features , такие как Python 3.5.0 (64bit) или simlar?

Или другой вопрос - есть ли способ, как запретить установщику доступ к Programs and features , вообще запретить ему запрашивать права администратора и реестр?

Это очень полезно, если я хочу, чтобы несколько установок Python ни к чему не были привязаны, а тестирование - в качестве основной цели. Обратите внимание, что у меня нет намерения использовать python launcher (это py.exe ), virtualenv или любое другое альтернативное "решение", так как каждое из них позволяет мне устанавливать только одну установку Python той же версии и / или слишком велико для быстрого использования.

1 ответ1

2

Видимо случайно Установщик Python 3.5 , так как имеет MSIS я требую погруженного , и они не выйдут. Однако есть веб-установщик для каждого Python, и с этим вы можете сделать то же самое и получить работающую установку Python:

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

Это загружает файлы Release MSI (не только Debug или PDB ). Затем вам нужно отфильтровать файлы с _d.msi и _pdb.msi , что теперь тривиально для Batch, и вы получите следующую структуру:

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

и довольно много распространяемых VS. В зависимости от ваших потребностей вы можете удалить файлы .exe , .msu(redists), _d.msi , _pdb.msi в вашем рабочем каталоге. Остальные - это файлы Release и файлы, которые расширяют функциональные возможности интерпретатора, такие как launcher(py.exe), path(возможно, просто навсегда переводит python в PATH) и т.д.

Если вы запустите каждый из них с этим:

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

Вы получаете работающую портативную установку Python. Обратите внимание, что такая вещь официально не поддерживается.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .