安装 Python 很简单,但是其中的很多细节未必大家都清楚,趁着安装最新 3.8 版本,把整个过程详细记录下。

Python or Anaconda

本节是专门写给一些小白,Python 还没弄明白就遇到其他人随便丢下一句话:“安装 Anaconda” 的情况。

没听说过 Anaconda 的,可直接跳过本节。

很清楚 Anaconda 是什么的,可以考虑直接跳过本文。

Anaconda 这个单词和 Python 一样,都是蟒蛇的意思。它是一个用于科学计算的 Python 发行版。所谓的发行版,可以理解为增强版,就是把一些(特定领域)常用的工具和库都打包到了一起。

所以 Anaconda 的体积比 Python 大很多。

虽然里面包含了很多成熟好用的工具,但是对于入门者学习 Python 来说弊大于利。所以不推荐新人安装。

Python 掌握了之后,有需要的时候再来折腾它也不迟。

这其中有一个工具  Jupyter 是对教学有帮助的神器,我们会在合适的时候单独介绍。

32 位 or 64 位

打开 Python 官网: python.org,默认的下载按钮提供的是 32 位的安装包。

绝大多数情况下,特别是学习阶段,32 位还是 64 位没有区别。今后我们编写的所有 Python 代码,也不会区分是多少位。

大家现在所用的 Python 是 C 语言实现的 CPython,它可以直接使用 C 语言编写的模块。这些 C 语言模块针对不同位数的 Python 编译出来的结果只能用在特定的版本上。

大多数情况下,这些模块会同时提供针对不同位数的版本,直接使用 pip install 的时候会自动匹配。只是有些时候手动下载安装包的时候,需要注意版本要匹配一致。例如:

即使以后因为特殊情况,需要某一个特定的 Python 版本,重新安装一个即可,所以这里我们也不必过于纠结。像我这种有点强迫症的必须选择和操作系统一致的。

细心的小伙伴可能注意到,表示 64 位的形式是不一样的,有  x86-64,也有  amd64,这主要是历史原因。有兴趣可以自行搜索了解一下。

添加 Python 到 PATH

开始安装

几乎 所有的 Python 安装教程都会强调,勾选 Add Python to PATH 的选项,但是问题来了:

这个选项既然如此重要,为什么安装包不把它作为默认勾选状态呢?

细心点的小伙伴还会注意到,在它上面还有个选项: Install launcher for all users(recommended)

不但有默认勾选的待遇,而且还括弧,推荐。生怕你不选它。

这个所谓的 launcher 是何方神圣,为啥优先级又比 PATH 高呢?

为什么要默认安装 launcher

PATH 的作用

首先环境变量 PATH 的值是一堆路径的列表,因为环境变量的值只支持字符串,所有使用分号(;)连接字符串的形式。

Windows 10 的体验不错,提供了对话框式的列表操作。 Windows 7 还需要编辑整个字符串

当我们在命令行中敲命令的时候,操作系统就是去这些路径下搜索有没有可执行程序能对得上号。只要找到了,就执行;没找到,就报错。

找的时候是从前往后按顺序的,一旦找到,后面就不继续找了。

因此,为了能让命令行找到 python,必须要把 Python 的安装路径也加入到 PATH 变量中,这一点毫无疑问。

问题在于 Python 并不是永远只安装一个。有些时候我们必须安装多个 Python 版本。

多 Python 版本并存的痛点

比如说,虽然今天我们安装了最新的 Python 3.8 版本,但是可能我需要用到的某个软件还没支持这么新,甚至有的企业里的软件可能还只支持 Python 2.7。

安装多个 Python 版本,只要安装到不同的目录,它们彼此是不会产生什么冲突的,但是加入到 PATH 的待遇却只有一个能享受。那么其它没加入到 PATH 中的 Python 就变得使用没那么方便了。

在 Linux 系统中,这个很好解决,而在 Windows 系统下就比较麻烦,所以这才有了 launcher,也就是 Python 启动器 这么个东西。

Python 启动器也是个程序,py.exe,直接在命令行中敲 py 就能调用。它能够方便地管理所有安装过的 Python 版本,轻松启动不同版本的 Python 解释器,不管其有没有加入到 PATH 中。

偷懒的人勾选完 Add Python to PATH 就可以直接点击 Install now 开始安装了。出于介绍的目的,或者你想把 Python 安装到自定义目录,可以选择 自定义安装(Customize installation)

其它选项

自定义安装有 2 个对话框选择,第一个默认都是勾选上的,每个选项是啥意思介绍如下:

  • Documentation 离线的 .chm 格式文档,必须保留。英文还 OK 的小伙伴可以直接看这份文档,比所有书都靠谱。看英文有压力的,平时随时查查标准库模块用法什么的是极好的。
  • pip Python 包下载工具,必须保留。(想找虐的随意)
  • tcl/tk and IDLE ,说来话长,保留就对了。
  • Python test suite,这个可以没有,当然留下来也没关系。
  • py launcher,前面介绍过了。这里额外注意的是 for all user 选项,可以选择是否对所有用户安装。如果对所有用户安装,则需要 administrator 的权限。

第 2 个对话框是高级选项:

  • Install for all user,是否对所有人安装,如果是,需要 administrator 的权限,并且安装路径会有所不同。
  • 关联文件到 Python,这个保持原样即可。它就是把 .py 文件和 python 程序关联起来,这样双击 .py 文件的时候,自动就用 python 去执行了。
  • 创建快捷方式,保持原样即可。
  • 添加 Python 到环境变量,第 2 次修改的机会
  • 预编译标准库,一次性的把标准库的 .py 都预编译成 .pyc,没什么必要,会多花费安装时间,不选
  • 两个 download debug xxx ,不知道哪里会用到,都不选

最下面是指定安装路径,个人意见,保持默认即可。如果取消勾选为所有人安装,则默认安装的路径会比较深,这个看上去有点不舒服,但是绝大多数情况下我们都不会直接造访该目录,所以不会有什么影响。

我个人的推荐操作是  不选择对所有用户安装,这样如果想使用多个用户,每个用户有自己选择的自由。

安装后的基本测试

安装完成后,新打开一个命令行窗口,win + r,然后输入 cmd:

注意,在安装 Python 前已打开的命令行不会自动更新环境变量。

依次执行下面的命令:

# 注意,-0 后面是数字 0,不是字母 o
py -0或者py --list

这就是调用 Python 启动器,它显示出系统中已安装的 Python 版本。

python --version

这是直接调用 Python 解释器,打印出它的版本。

pip --version

这是调用 pip,打印出它的版本。

为什么要测试这 3 个命令,因为它们分别安装在了不同的位置,都工作正常了,就证明安装没有问题了。

想要了解更多细节,我们来查看 PATH 环境变量。

安装后的 PATH 变化

因为没有选择为所有用户安装,所以环境变量看当前用户的:

安装时的选择不同,这里环境变量出现的位置也会有所不同

上面 3 条就是安装后自动添加的。

注意,如果  launcher 没有取消勾选  for all user,则会默认安装在系统目录下,就不需要添加到  PATH,这里就只有 2 条新增。

安装目录详情

先来看 C:\Users\Davy\AppData\Local\Programs\Python\Python38,也就是 Python 的安装路径,它是包含 python.exe 的目录。

其它目录的作用:

  • DLLs,静态链接库,里面是一些 .dll 和 .pyd 文件,一般不会直接和这个目录打交道
  • Doc,文档,里面就是一个 python381.chm,快捷方式里包含了该文档路径,所以平常不会直接访问
  • include,头文件,基本上不会用到
  • Lib,这个目录最最重要,几乎所有的标准库源码都在这里面了,大部分平常都不会去动它们,除了其中一个子目录:

    • site-packages 后续安装的第三方模块和包都会出现在这里,所以偶尔出现问题,我们会造访这里。
  • libs,几乎不会直接用到,注意和 Lib 区分开。(因为 Windows 系统路径不区分大小写,所以 Lib 实际会展示成 lib )
  • Scripts,后续安装的第三方包如果提供了命令,可执行文件就会出现在这里。例如 pip.exe 就是在此目录下,而 Lib 目录下保存的是 pip 的源码。
  • tcl,仍然是说来话长,略过
  • Tools,自带的一些 Python 脚本,包括一些 demo,其中有些可以作为学习参考。

最后看 launcher 的目录,它要管理所有的 Python 版本,所以它是超脱在外的,安装在了 Python38 的上级目录中。

启动菜单详情

安装 Python 后在开始菜单会多出来 4 个快捷方式,一般很少用,做一个简单的介绍:

  • IDLE (Python 3.8 64-bit),用来启动 IDLE ,以后再详细介绍它。
  • Python 3.8 Module Docs (64-bit),点击会自动启动一个本地 web 服务,然后自动打开包含模块文档的网页,样式非常古老,而且其中的内容都包含在下面的文档文件中了,所以基本没人会用这个。
  • Python 3.8 Manuals (64-bit),点击打开文档
  • Python 3.8 (64-bit),点击用来启动 Python 解释器。用这种方法启动解释器,退出后就整个黑窗口都消失了,打印的信息也都看不到了,所以我们一般是先启动命令行,再从命令行内启动 Python,这样即使解释器退出了,也能看到刚才程序执行的结果。

小结

本文详细解释了 Python 安装过程中的注意事项,并且详细介绍了安装后的各个文件夹作用,以及增加的 3 个命令。

Python安装,不加入PATH行不行?相关推荐

  1. python的第三方库-Python 的第三方库到底行不行啊?

    8 2018-01-20 11:28:56 +08:00 用那个 issue 里面的 hack 办法跑了一晚上效果如下: ``` >>>>>>>>> ...

  2. 【Python】Python3.7.3 - Windows安装Python以及Python安装目录结构详解

    文章目录 Python 3.7.3安装 安装程序下载 启动安装程序 定制安装 设置安装目录 安装完毕 验证安装成功 检查Windows环境变量 确认Python版本 探索Python的安装目录 安装目 ...

  3. python安装与pip安装

    一.python安装 勾选path,勾选pip 二.pip安装 pip下载官网:pip · PyPI 单击红色框内tar文件下载 下载后解压,解压后打开,复制pip所在文件路径 如:D:\APP_do ...

  4. add python to path是什么意思_Python原来这么好学(PATH保存了与路径相关的参数安装时需要将Add Python to PATH行勾选)...

    (PATH保存了与路径相关的参数安装时需要将Add Python to PATH行勾选) https://www.cnblogs.com/chipscoco/p/12335891.html 这是一本教 ...

  5. python路径在哪里设置_找Python安装目录,设置环境路径以及在命令行运行python脚本实例...

    第一点:找Python安装目录 方法一: 方法二: 输入import sys print(sys.path) 化黑线处 第二点:找到安装目录后就可以开始设置环境变量 这里我的安装目录为C:\Progr ...

  6. 第一:Python安装需要的第三方库时,命令行输入pip提示不是内部或外部命令

    在做Python开发时,安装需要的第三方库时,大多数人喜欢选择在命令行用pip进行安装. 然而有时敲入pip命令会提示'pip'不是内部或外部命令..如图: 解决办法 1.在python安装目录中找得 ...

  7. Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略

    Py之argparse:Python库之argparse(命令行解析)简介.安装.使用方法之详细攻略 导读 python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用a ...

  8. 直接学python行不行_是否可以直接学python或者java而不学c++?

    当然可以直接学python--编程语言之间基本上没有谁是谁的进阶这种说法,计算机科学才有进阶.所以你说直接学python行不行,当然没问题.即使是Eric S.Raymond也在回答How to Be ...

  9. python安装时没有选path怎么办,环境变量是个啥? 没有勾选Add to Path怎么办?

    问题一: 安装Python的时候没有勾选Add to Path怎么办?卸载了重新安装? 问题二: Python安装在非C盘怎么办? 问题三: 在cmd输入Python,提示"python不是 ...

最新文章

  1. Plan9操作系统基本概念
  2. 报名 | 刘鹰教授:草根创新力:中国经济快速发展的秘诀
  3. Spring学习(五)——Spring注解(一)
  4. c语言使用数组计算最大数。_程序设计入门——C语言_浙江大学_第10次开课
  5. 浅析C语言中strtol()函数与strtoul()函数的用法
  6. PHP 函数截图 哈哈哈
  7. Day1 安装虚拟机和centos7系统
  8. python3tkinter_python3使用tkinter制作动画
  9. QString和std::string转换乱码与sqlite存储汉字乱码
  10. echarts+vue3实战(1)
  11. python发送qq文件_怎么用qq邮箱发文件-十分钟教你使用Python发送邮件(复制可用)...
  12. mysql 1114_ERROR 1114 (HY000): The table 'adv_date_tmp' is full(Mysql临时表应用)
  13. kubelet报错:Orphaned pod “$Pod“ found, but volume paths are still present on disk
  14. 哪一种语言最流行?VB,C++,JAVA? (转)
  15. 高德地图海量点 API 初探
  16. Rust编程语言入门教程(一)-什么是Rust
  17. TCP通信 、 UDP通信
  18. Traffic shaping 一个事半功倍的程序化”噪音“解决方案
  19. 遭遇Trojan DL Multi wfg sss exe SCVHOST EXE autorun inf 等
  20. ratelimit+redis+lua对接口限流

热门文章

  1. 怎样在压力下开始工作?
  2. 10个最受欢迎热门的网络游戏
  3. 《光棍儿》2011.11.11......
  4. 搜索技术的秘密(一):概览
  5. 《央视舞蹈大赛》的片头音乐来自《犬夜叉》
  6. SpringBoot系列教材 (十三)- 持久层支持 - springboot中如何运用JPA,简单例子
  7. Popup menu:弹出式菜单
  8. java countdowntimer_Android 倒计时CountDownTimer
  9. (七十六) CountDownTimer
  10. Recognising Traffic Signs