前言: 前一阵子至少指导了5位学弟学妹小伙伴配置 python 环境。2年前我入门 python 时,也得照着互联网上的资料,一步一步“照猫画虎”;为什么现在自己可以“凭感觉”一气呵成了呢?我想,原因必然是自己对于编译过程和计算机原理已有所了解。本文将用白话讲解 python 编译运行过程(计算机如何看懂我们写的代码的),引出配置环境的原理,让大家从此告别“教程”,以后可以随心配置任何的语言环境。

文章章节:

  • 1 “远古时代”,程序猿都要用“命令行”
  • 2 我们安装的 python 程序实际上就是一个编译器,将我们的代码转换成机器能看懂的机器码
  • 3 配置环境,实际上就是为了让计算机可以随时随地运行编译器
  • 4 拓展:编译器和编辑器有本质区别,我们需要一个能帮助我们偷懒的“编辑器”

1 “远古时代”,程序猿都要用“命令行”

在七八十甚至九十年代,电脑还并未像现在这么普及,原因有二:

  • 电脑的性能、价格并不理想,日常工作并不依赖电脑;
  • 电脑的学习成本高,因为人们需要使用“命令行”(也叫控制台、终端)来操作,而非鼠标+图形界面。

所谓命令行,就是通过输入命令,来控制计算机尽管现在你可以使用鼠标和图形界面做很多事,但是对于写程序的同学来讲,时至今日,命令行依然有着鼠标无可比拟的优势,比如减少重复命令与操作便捷等等。(你可以使用 Win+R,并输入cmd来启动 windows 中的命令行)

如上图,我的命令行进入了C:\Users\Dell\Desktop\show这个路径(你可以把“路径”理解为文件夹),在这个文件夹里,有一个视频文件叫做1.mp4,此时我们输入这个文件的名字,则相当于使用鼠标双击了这个视频文件,将其打开。

了解了“命令行”这个概念,我们再来看看计算机为什么能看懂我们写的代码?

2 我们安装的 python 程序实际上就是一个编译器,将我们的代码转换成机器能看懂的机器码

编程语言有很多分类维度:

  • 静态型、动态型;
  • 强类型、弱类型;
  • 编译型、解释型。

我们没必要陷入“哪个好”的纠结中,毕竟,绝大部分编程语言的诞生都来自特定的需求与时代背景。换句话说,编程语言五花八门,却各有千秋。

但是,编程语言都离不开如下原则:

  • 编程语言是人类写出来的,是用于命令机器的工具,因此其本身具有逻辑性;
  • 机器看不懂什么逻辑性,只看得懂0101010或者说为地址0xFFFF赋值0x3AB2这样的“鬼话”;
  • 因此,任何编程语言都需要有一个“人话到鬼话的转换过程”,才能执行。

C++语言为例,我们写一个程序放在C:\Users\Dell\Desktop\show,程序叫做cppHello.cpp

#include <stdio.h>int main(){printf("Hello, PiperLiu! This is C++.");return 0;
}

然后命令行中:

  • 输入g++ cppHello.cpp,表示使用 g++ 编译器对这个 cpp 文件进行“转换”;这个步骤后,该文件夹下就多了一个a.exe文件,这个文件只有电脑能看懂,并且能执行;
  • 输入 a.exe ,你可以看到程序执行,如下图。

对于我们今天的主角 python 而言,输入 python 文件名 就可以实现编译+运行的功能。我们管这种能把“人话转换成到鬼话”的工具叫做编译器。对于 C++ 来讲,这个编译器可以是 g++ ,对于 python 来讲,它是 python

但是,我们的C:\Users\Dell\Desktop\show文件夹下并没有 python.exe 或者 g++.exe 这样的程序呀!为什么我可以运行 [g++ 文件名] 而不报错呢?这就牵扯到【环境配置】这个过程了:配置了环境,我们的电脑才可以随时随地(在任何路径下)运行类似g++或者python这样的编译器。

3 配置环境,实际上就是为了让计算机可以随时随地运行编译器

配置环境的过程各个“教程”几乎都一样:

  • 右键“我的电脑”;
  • “高级系统设置”;
  • 高级-“环境变量”;
  • “新建”。

(当然,现在 Anaconda 有了 add to path 选项,可能自动为我们进行这一步)

这一步是什么意思呢?

  • 我们使用命令行进入任何一个文件夹,敲入命令,比如1.mp4
  • 此时计算机将寻找该文件夹下有没有这个1.mp4程序;
  • 没有的话,计算机进入“环境变量”进行寻找,有的话,执行,再没有的话,报错。

比如,我将放置了 1.mp4 的文件夹 C:\Users\Dell\Desktop\show 添加为系统变量,如下图。

随后,我就可以在任何一个文件夹中调用C:\Users\Dell\Desktop\show中的任何文件了。比如,我打开一个新命令行,进入一个空文件夹,输入1.mp4,也能打开1.mp4这个视频!

那么,我们所谓“配置语言环境”,其目的就是为了让电脑能在任何时候都调用python这样的编辑器。因此,我们只需将放置 python 的文件夹作为一个新的系统变量即可。

你会发现,无论是你从官网下载 python 还是 Anaconda ;安装后都会有个文件夹里有 python.exe 以及 pythonw.exe 这样的文件。那么我们要做的,自然就是将这个文件夹放进系统变量。

由此,我们的“安装语言”/“配置环境”工作完成。你会发现,其逻辑和步骤其实都非常简单,用不着人手把手教。只有两步:

  • 下载编译器并安装,可以是 python.org 上的原生 python ,可以是 Anaconda ;
  • 配置环境,让计算机可以随处运行你的 python 编译器,将你写的 某某.py 文件编译成机器码,并且执行。

C++java等一众语言,同理。

4 拓展:编译器和编辑器有本质区别,我们需要一个能帮助我们偷懒的“编辑器”

编译器是什么,前文已讲过;那么编辑器呢?

所谓编辑器,就是方便程序员写代码的东西,本质上是文本编辑器。

诚然,有了编译器,你用记事本写代码都可以,反正编译器编译后,大家都是一样的机器码;但是在追求效率的21世纪,好的文本编辑器带来的效率收益可以是次方数量级的。

编辑器我推荐自己最喜欢的 VS Code ,轻量可扩展。我将在以后根据需求为小白进行讲解。

先把环境配置好吧!祝顺利!

以后再也不用看“教程”!概括【配置环境】的原理,小白也能举一反三的python配置环境过程!相关推荐

  1. 电脑必备:通用输入法状态提示,再也不怕按错,再也不用看右下角

    ImTip 是一个开源输入法状态提示工具( 仅 639 KB ),虽然发布没多久,已被网友推荐为 Windows 必备软件.在小众有网友留言:"终于遇到她了,你说的这个痛苦,我承受好久了-- ...

  2. g++ 安装python_以后再也不用“教程”:让人举一反三的python配置环境过程 + 超简单原理概括!...

    前言: 前一阵子至少指导了5位学弟学妹小伙伴配置 python 环境.两年前我入门 python 时,也得照着互联网上的资料,一步一步"照猫画虎":为什么现在自己可以"凭 ...

  3. 如何确定python开发环境已经配置好_python学习第一天:window安装python开发环境完整篇...

    Python是跨平台的,它可以运行在Windows.Mac和各种Linux/Unix系统上: 要开始学习Python编程,首先就得把Python安装到电脑里.安装后,你会得到Python解释器(就是负 ...

  4. eclipse配置python环境后啷个写java类_eclipse+java+python的环境配置

    一.Eclipse 的安装 Eclipse的安装是很容易的.Eclipse是基于java的一个应用程序,因此需要一个java的运行环境(JRE)才行.(我这里主要介绍windows下的安装) JRE的 ...

  5. python编程环境要求_python公开课|我们需要优秀Python编程环境的要求居然是这些...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注Py ...

  6. linux python开发环境_如何在Linux系统中搭建Python编程环境

    1 在大多数的Linux系统中,基本上都默认安装了Python,也就是说,在Linux的系统中基本上是不需要安装什么软件,就可以使用Python. 下面以ubuntu操作系统为例,看看如何在Linux ...

  7. python 网站开发环境_安吉公司网站建设:最好的Python开发环境

    Python是一种广泛使用的语言为软件开发程序员,脚本 人工智能 (AI). 成立是1991年,从那时起它成为最广泛的语言编程的新手. 与Python,您可以构建一切. 很多程序员开始用它来促进机器学 ...

  8. 看了这篇文章,妈妈再也不用担心我的学习了---spark原理

    前言 大家好,我是DJ丶小哪吒,我又来跟你们分享知识了.对软件开发有着浓厚的兴趣.喜欢与人分享知识.做博客的目的就是为了能与 他 人知识共享.由于水平有限.博客中难免会有一些错误.如有 纰 漏之处,欢 ...

  9. 家用投影机预埋布线图_投影仪布线安装技巧 再也不用看安装示意图了

    很多人对于投影仪的认识还仅仅停留在我们的办公用品当中,不过其功能可不仅仅局限在我们的办公场所,现在越来越多的人都将其作为我们的家中一种电器产品来使用.将其安装在客厅或者是卧室,这样我们就能够享受到看大 ...

最新文章

  1. python commands_python commands模块在python3.x被subprocess取代
  2. fatal: 无法访问 ‘https://github.com/salesforce/WikiSQL/‘:GnuTLS recv error (
  3. c++学习笔记之基础篇
  4. P3203 [HNOI2010]弹飞绵羊
  5. java 方法 示例_Java集合syncedList()方法与示例
  6. 使用Maven管理Eclipse Java项目
  7. 在一个工程(包)下面让activity和SensorEventListener监听分离,在不同类中完成
  8. Javascript设置定时请求
  9. 索引添加后,ACCESS数据库表查询运行速度的区别
  10. Linux如何创建makefile文件,如何在Linux上为gcc创建简单的makefile?
  11. 一分钟电脑自动关机的代码
  12. editplus java快捷键_常用editplus快捷键大全
  13. Latex学习笔记(十五)特殊符号的插入
  14. Couch的MapReduce查询
  15. Ztree Fa-Awesome 图标使用
  16. 微信公众号的基本排版设置
  17. 虚拟机中安装vmtools工具的命令和相关问题解析
  18. 第十五天 12-tcpdump检测流量工具
  19. android10(Q) API29下,通过getDeviceId()方法获取imei 报错的处理办法
  20. 首届SD-WAN实战特训营

热门文章

  1. mysql 根据状态输出_mysql show processlist 输出状态说明
  2. 【Oracle】DBA_AUDIT_TRAIL表SES_ACTIONS字段对应的操作列表
  3. 解决sql2008附加不了2005的数据库文件的问题
  4. 解决 meterpreter 使用shell后 shell内中文乱码的问题
  5. C#中引用第三方ocx控件引发的问题以及解决办法
  6. QT出现 Cannot create children for a parent that is in a different thread 的解决方法:
  7. C++(八)— 死锁原因及解决方法
  8. junit单元测试不通过报documentationPluginsBootstrapper相关异常
  9. 解析docker中的环境变量使用和常见问题解决
  10. 移动端HTML5音频与视频问题及解决方案