My question is if you can install python with powershell, cmd, vbs or any other language built into Windows already?If this was already asked please redirect me to the answer."How to install Python using Windows Command Prompt" explains how to install the python if you already have the exe installed, not how to install the exe.


EDIT: I am trying to install python with a file on a pc that does not have python installed, only thing restricted might be that the account does not an administrator and if possible in the background.

6

Best Answer


The best way to install Python through Windows Command Prompt will be through Chocolatey (Windows Package Manageer).

Steps to install python 3 will be as follows :-

  1. Open CMD using 'Run as Administrator'.

  2. Download and Install Chocolatey using the following command.

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
  1. Download and install python using the following command.
choco install -y python3
  1. You can check the version to verify if Python was successfully installed as follows.
python --version

You could download the setup you want to install and then install it automatically without using the setup's UI:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12Invoke-WebRequest -Uri "https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe" -OutFile "c:/temp/python-3.7.0.exe"c:/temp/python-3.7.0.exe /quiet InstallAllUsers=0 InstallLauncherAllUsers=0 PrependPath=1 Include_test=0

I don't think it will work without admin privileges though, I tried using InstallAllUsers=0 to install it only for the current user but it is still asking for elevation.

There are some options you can use when installing it this way, here is the doc: https://docs.python.org/3.6/using/windows.html#installing-without-ui

You can not install it without administrator privileges. It would be lack of security I guess. What you can use in pipelines for instance is:

$url = "https://www.python.org/ftp/python/3.7.6/python-3.7.6-amd64.exe"$output = "C:/tmp/python-3.7.6-amd64.exe"if (Test-Path $output) {Write-Host "Script exists - skipping installation"return;}New-Item -ItemType Directory -Force -Path C:/tmp[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12Invoke-WebRequest -Uri $url -OutFile $output& $output /passive InstallAllUsers=1 PrependPath=1 Include_test=0 

But still, Admin rights are required

Yes, there is a way to download python with cmd. All you gotta do is to write "python" and you will automaticly be taken to the msstore. Ive made some scripts for ya. Its done automaticly you just click on one batch file and its all done. Here ya go:

@echo off::Checks if python is installed:checkpython --version 3>NULif errorlevel 1 goto errorNoPython::If python is installed then it runs the programstart <python progam>exit::Installes python:errorNoPythonpythontimeout /t 60goto check

Not related to the question directly, but some people may end up here looking for a different solution.

To use Python within Powershell:

  • Install Python from the Microsoft Store (an App in the programs list)
  • Open the Powershell window(can hold SHIFT and right click in the window where your python file is located'Open Powershell Window here')
  • type 'python' a space and the name of the fileExample:PS C:\Users...\Project> python test.py

Probably it's correct to guess that after installing python with PowerShell, the next question will be about installing environment (and possibly dependencies) with PowerShell?

Packed multiple related answers in easy 1-click powershell-batch for this goals. Look "with end-user download" option.
If no admin rights are allowed, portable distribution "or portable usage" from the same repo may be an option.