使用PowerShell安装Python

发布于 2019-09-14  3,932 次阅读


第1步 - 打开并配置PowerShell

我们将在命令行界面上完成大部分安装和设置,这是一种与计算机交互的非图形方式。也就是说,您不是点击按钮,而是键入文本并通过文本从计算机接收反馈。命令行(也称为shell)可以帮助您修改和自动化您每天在计算机上执行的许多任务,并且是软件开发人员必不可少的工具。

PowerShell是Microsoft的一个程序,它提供命令行shell接口。管理任务是通过运行cmdlet来执行的,cmdlet是command-lets的缩写,可以执行操作的.NET软件框架的专用类。 PowerShell于2016年8月开源,现在可跨平台使用,适用于Windows和UNIX系统(包括Mac和Linux)。

要查找Windows PowerShell,可以右键单击屏幕左下角的“开始”菜单图标。弹出菜单后,您应单击“搜索”,然后在搜索栏中键入“PowerShell”。当您看到选项时,右键单击桌面应用程序“Windows PowerShell”。出于我们的目的,我们将选择“以管理员身份运行”。当系统提示您提示“是否要允许此应用程序对您的PC进行更改?”时,单击“是”。

执行此操作后,您将看到一个基于文本的界面.

我们可以通过输入以下命令切换出系统文件夹:

cd ~

然后我们将进入C:\Users\Sammy\等目录。

要继续我们的安装过程,我们将通过PowerShell设置一些权限。默认情况下,配置为以最安全的Restricted模式运行,作为管理员,您可以设置的几个级别的权限:

  • Restricted: 受限制是默认执行策略,在此模式下,您将无法运行脚本,而PowerShell仅可用作交互式shell;
  • AllSigned: 将使您能够运行由受信任的发布者签名的所有脚本和配置文件;
  • RemoteSigned: 将允许您运行从受信任的发布者签名的Internet下载的脚本和配置文件,如果这些受信任的脚本实际上是恶意的,则会是您的计算机处于风险之中;
  • Unrestricted: 一旦您确认您了解该文件是从Internet下载的,Unrestricted将运行从Internet下载的所有脚本和配置文件。在这种情况下,不需要数字签名,因此您可能会打开机器,冒着运行从Internet下载的未签名和潜在恶意脚本的风险。

我们将使用RemoteSigned执行策略为当前用户设置权限,允许PowerShell接受我们信任的已下载脚本,而不会像使用Unrestricted权限那样使用广泛的权限。在PowerShell中,让我们输入:

Set-ExecutionPolicy -Scope CurrentUser

然后PowerShell会提示我们提供执行策略,因为我们要使用RemoteSigned,我们将输入:

RemoteSigned

一旦我们按下回车键,我们就会被问到是否确实要更改执行政策。 键入字母y表示“是”,并允许更改生效。 我们可以通过输入以下内容来询问整个机器的当前权限来确认这是有效的:

Get-ExecutionPolicy -List

您应该收到如下所示的输出:

这确认了当前用户可以运行从互联网下载的可信脚本。 我们现在可以继续下载设置Python编程环境所需的文件。

第2步 - 安装包管理器Chocolatey

软件包管理器是一组软件工具,用于自动执行安装过程,包括软件的初始安装,升级和配置,以及根据需要删除软件。它们将软件安装保存在中央位置,并且可以以常用格式维护系统上的所有软件包。

Chocolatey是一个为Windows构建的命令行包管理器,其工作方式类似于Linux上的apt-get。 Chocolatey提供开源版本,可帮助您快速安装应用程序和工具,我们将使用它来下载我们的开发环境所需的内容。

在我们安装脚本之前,让我们阅读它以确认我们对它将对我们的机器所做的更改感到满意。为此,我们将使用.NET脚本框架在终端窗口中下载和显示Chocolatey脚本。我们将创建一个名为$script的WebClient对象(只要你使用$作为第一个字符就可以调用它),它与Internet Explorer共享Internet连接设置:

$script = New-Object Net.WebClient

让我们通过将对象传递给Get-Member类来返回我们可用的选项,以返回此WebClient对象的所有成员(属性和方法):

$script | Get-Member

查看输出,我们可以识别DownloadString方法,我们可以使用它来在PowerShell窗口中显示脚本和签名。 让我们实现这个方法:

$script.DownloadString("https://chocolatey.org/install.ps1")

在我们检查脚本之后,我们可以通过在PowerShell中键入以下内容来安装Chocolatey:

iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

cmdlet iwr或Invoke-WebRequest允许我们从Web中提取数据。 这会将脚本传递给iex或Invoke-Expression cmdlet,它将执行脚本的内容,运行Chocolatey包管理器的安装脚本。

允许PowerShell安装Chocolatey。 完全安装后,我们可以使用choco命令开始安装其他工具。

第3步 - 安装文本编辑器nano(可选)

我们现在要安装nano,一个使用命令行界面的文本编辑器,我们可以使用它直接在PowerShell中编写程序。 这不是必修步骤,因为您可以使用带有图形用户界面(如记事本)的文本编辑器,但nano会让我们更习惯于使用PowerShell。

让我们用Chocolatey来安装nano:

choco install -y nano

这里我们使用-y标志,以便我们自动确认我们想要在没有提示的情况下运行脚本。

一旦安装了nano,我们就可以使用nano命令创建新的文本文件,并最终用它来编写我们的第一个Python程序。

第4步 - 安装Python 3

就像我们上面使用nano一样,我们将使用Chocolatey来安装Python 3:

choco install -y python3

PowerShell现在将安装Python 3,在此过程中在PowerShell中生成输出。

完成该过程后,您应该看到以下输出:

安装完成后,您需要确认已安装Python并准备就绪。 要查看更改,请使用命令refreshenv或关闭并以管理员身份重新打开PowerShell,然后检查本地计算机上可用的Python版本:

python -V

除了Python之外,还将安装pip,它将管理Python的软件包。 让我们通过升级来确保pip是最新的:

python -m pip install --upgrade pip

使用Chocolatey,我们可以使用python命令调用Python 3。 我们将使用-m标志将库模块作为脚本运行,终止选项列表,然后使用pip安装其升级。

安装Python并更新pip后,我们可以为我们的开发项目设置虚拟环境。

第5步 - 设置虚拟环境

现在我们已经安装了Chocolatey,nano和Python,我们可以继续使用venv模块创建我们的编程环境。

虚拟环境使您可以在计算机上为Python项目创建一个隔离空间,确保每个项目都有自己的一组依赖项,这些依赖项不会破坏任何其他项目。

设置编程环境使我们能够更好地控制Python项目以及如何处理不同版本的包。 在使用第三方软件包时,这一点尤为重要。

您可以根据需要设置尽可能多的Python编程环境。 每个环境基本上都是计算机中的一个目录或文件夹,其中包含一些脚本以使其充当环境。

选择您希望将Python编程环境放在哪个目录中,或者使用mkdir创建一个新目录,

进入您希望环境生存的目录后,可以通过运行以下命令来创建环境:

python -m venv my_env

使用python命令,我们将运行venv库模块来创建虚拟环境,在本例中我们称为my_env。

从本质上讲,venv设置了一个新目录,其中包含一些我们可以使用ls命令查看的项目:

ls my_env

这些文件一起用于确保您的项目与本地计算机的更广泛的上下文隔离,以便系统文件和项目文件不会混合。 这是版本控制的良好实践,并确保您的每个项目都可以访问所需的特定软件包。

要使用此环境,您需要激活它,您可以通过键入调用Scripts目录中的activate脚本的以下命令来执行此操作:

my_env\Scripts\activate

您的提示现在将以您的环境名称作为前缀,在这种情况下,它被称为my_env:

这个前缀让我们知道环境my_env当前是活动的,这意味着当我们在这里创建程序时,它们将只使用这个特定环境的设置和包。

第6步 - 创建一个简单的程序

现在我们已经设置了虚拟环境,让我们创建一个简单的“Hello,World!”程序。 这将确保我们的环境正常运行,并让我们有机会更熟悉Python,如果我们还没有。

为此,我们将打开nano并创建一个新文件:

nano hello.py

一旦文本文件在终端打开,我们将输入我们的程序:

print("Hello, World!")

通过键入control和x键退出nano,当提示保存文件时按y然后按Enter键。

一旦退出nano并返回shell,让我们运行程序:

python hello.py

您刚刚创建的hello.py程序应该导致Terminal生成以下输出:

要离开环境,只需键入命令deactivate,您将返回到原始目录。