user10122572
user10122572

Reputation:

Install Python with cmd or powershell

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.

Upvotes: 29

Views: 238396

Answers (7)

user7918432
user7918432

Reputation: 1

Here is a handy Powershell One-Liner that downloads the latest Python-Version for Windows and asks if it should install it right away. It even opens an elevated sessions with admin rights.

if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) { Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"$url = (Invoke-WebRequest -Uri 'https://www.python.org/downloads/windows/').Content | Select-String -Pattern 'https://www.python.org/ftp/python/\d+\.\d+\.\d+/python-\d+\.\d+\.\d+-amd64\.exe' -AllMatches | % { `$_.Matches[0].Value }; $path = `$env:USERPROFILE\Downloads\ + (`$url -split '/')[-1]; Invoke-WebRequest -Uri `$url -OutFile $path; if ((Read-Host 'Install? (Y/N)') -ieq 'y') { Start-Process -FilePath $path -Wait }`"" -Verb RunAs } else { $url = (Invoke-WebRequest -Uri 'https://www.python.org/downloads/windows/').Content | Select-String -Pattern 'https://www.python.org/ftp/python/\d+\.\d+\.\d+/python-\d+\.\d+\.\d+-amd64\.exe' -AllMatches | % { $_.Matches[0].Value }; $path = "$env:USERPROFILE\Downloads\" + ($url -split '/')[-1]; Invoke-WebRequest -Uri $url -OutFile $path; if ((Read-Host "Install? (Y/N)") -ieq 'y') { Start-Process -FilePath $path -Wait }}

Upvotes: 0

Isma
Isma

Reputation: 15209

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]::Tls12

Invoke-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

Upvotes: 22

halt9k
halt9k

Reputation: 953

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.

Upvotes: 0

Lime Lurkaren
Lime Lurkaren

Reputation: 11

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
:check
python --version 3>NUL
if errorlevel 1 goto errorNoPython

::If python is installed then it runs the program
start <python progam>
exit

::Installes python
:errorNoPython
python
timeout /t 60
goto check

Upvotes: 1

Gauranga Schleusener
Gauranga Schleusener

Reputation: 11

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 file Example: PS C:\Users...\Project> python test.py

Upvotes: 0

J.Wincewicz
J.Wincewicz

Reputation: 962

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]::Tls12
Invoke-WebRequest -Uri $url -OutFile $output


& $output /passive InstallAllUsers=1 PrependPath=1 Include_test=0 

But still, Admin rights are required

Upvotes: 7

Cyborg
Cyborg

Reputation: 417

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

Upvotes: 30

Related Questions