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

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

文章章节:

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

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

在七八十年代,电脑还并未像现在这么普及,原因除了当时的电脑又贵性能又低之外,还因为其学习成本太高:因为人们需要使用“命令行”(也叫控制台、终端)来操作,而非鼠标+图形界面。

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

9f637e200abf3929da28a34072882d13.gif

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

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

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

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

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

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

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

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

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

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

然后命令行中:

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

b6ff33a1b742861bff574b9bd29d3733.gif

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

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

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

8cafe440f1b66d1d7953ace5b7354489.png

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

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

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

这一步是什么意思呢?

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

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

663a426db9d2505fabb0dcd75a44ef3a.png

随后,我就可以在任何一个文件夹中调用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 ,轻量可扩展。我将在以后根据需求为小白进行讲解。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过Java和Spring Boot应用程序将Gmail用作SMTP服务器

Gmail用户可以使用Gmail的SMTP服务器smtp.gmail.com从其Spring Boot应用程序发送电子邮件。 为此,让我们在应用程序中进行一些设置: 在application.properties文件中提供SMTP连接属性: spring.mail.hostsmtp.gmail.com spring.mail.username…

java面向对象类似atm的题_Java面向对象练习题之银行存取款

编写Java应用程序。首先定义一个描述银行账户的Blank类,包括成员变量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次,编写一个主类,在主类中测试Blank类的功能。String ZhangHao;double YuE;Blank(Str…

mongodb如何写入图片_CTO之瞳-数据库-MongoDB

MongoDB,常用的NoSql数据库,在https://db-engines.com/en/ranking 里被分类为文档型数据库。​本文从以下五个方面来了解MongoDB (和上一篇一样,基础操作请查询官方文档或者菜鸟教程)使用场景存储引擎性能测试索引-B树分片与复制1…

小波滤波器与其他滤波器的区别_滤波器国产 VS 国外

一、滤波器技术及产品类型详细分析几次技术应用的潮流引领了声波射频滤波器技术的发展,而SAW滤波器可以说是军用转民用的技术典范。早期国内的SAW滤波器仅用于国防如雷达、通信等方面需求;而该技术的第一次民用,即用于彩电产业,带…

Unix/Linux/BSD 它们之间的关系以及各自派系的介绍

文章目录一、Unix 是什么二、Unix 派系(一)BSD 分支1.BSD 是什么2.由 BSD 衍生的闭源 Unix 版本3.由 BSD 衍生的开源 Unix 版本(二)System V 分支1.System V 是什么2.System V 与 BSD 的版权纠纷,以及 UnixWare 的由来…

arraylist获取前多少位_Java 面试题 :百度前 200 页都在这里

作者:唐尤华,基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe 机制有什么区别get 和 post请求的区…

航空订票系统界面java_Java命令行界面(第21部分):航空公司2

航空订票系统界面java本系列文章的第21篇关于Java中解析命令行参数的文章的重点是Airline 2库。 Airline 2的GitHub项目页面描述了该库,“ Airline是一个Java库,提供了基于注释的框架来解析命令行界面。” 该页面进入状态:航空公司“同时支持…

python爬虫数据_python爬取数据分析

一.python爬虫使用的模块 1.import requests 2.from bs4 import BeautifulSoup 3.pandas 数据分析高级接口模块 二. 爬取数据在第一个请求中时, 使用BeautifulSoupimport requests # 引用requests库 from bs4 import BeautifulSoup # 引用BeautifulSoup库 res_movies requests…

java 迁移数据_Java 9迁移指南:七个最常见的挑战

java 迁移数据我敢肯定,您已经听说过更新到Java 9并不是一件容易的事,甚至可能是不兼容的更新,而且对于大型代码库而言,迁移毫无意义。 这样做之后,我迁移了一个相当大的旧代码库,我可以告诉你,…

markdown java 代码高亮_MarkdownPad2使用代码高亮插件

MarkdownPad 2有插入代码块的功能,但样式却不尽人意,但又不想换个编辑器,找了挺多相关资料,最后在MarkdownPad 2集成prettify高亮插件。如下相关资料:你可以下载后引用,也可以直接引用bootcdn。具体步骤&am…

需求调研 现有系统梳理_对速度的需求,访问现有数据的速度提高了1000倍

需求调研 现有系统梳理了解如何通过使用标准Java 8流和Speedment的In-JVM-Memory加速器将分析数据库应用程序加速1000倍。 Web和移动应用程序有时会很慢,因为后备数据库很慢和/或与数据库的连接施加了延迟。 现代的UI和交互式应用程序需要快速后端,并且…

order by 影响效率么_提升开发效率N倍的20+命令行神器

图 by:石头青海湖关于作者:程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader。以每篇文章都让人有收获为目的,欢迎关注,交流和指导!背景本文主要来源于…

超级酒吧女生Java下载_超真实分享:一个人去酒吧的经验+注意事项

原标题:超真实分享:一个人去酒吧的经验+注意事项今天想跟大家分享我自己一个很奇妙也很特别的经验,就是关于我自己一个人去酒吧喝酒的故事~对这个故事有好奇心的女孩欢迎跟我一起聊聊~我的个性很独立而且蛮…

java parse_Java命令行界面(第9部分):parse-cmd

java parseparse-cmd库由单个类ParseCmd.java组成,该类是“用于在Java应用程序中定义和解析命令行参数的Java类。” 该库托管在Google Code存档上 ,因此可以随时关闭 。 该JAR似乎也可以在GitHub上使用 。 这篇文章介绍了如何使用parse-cmd 0.0.93处理Ja…

mysql 聚簇索引和非聚簇索引_MySQL学习之——索引

转自:CSDNMySQL是目前绝大多数互联网公司使用的关系型数据库,它性能出色、资源丰富、成本低廉,是快速搭建互联网应用的首选关系型数据库。但是,俗话说,“好马配好鞍”,仅仅会使用MySQL是不够的,…

java登录界面命令_Java命令行界面(第10部分):picocli

java登录界面命令picocli主页面将picocli描述为“强大的微小命令行界面”,“ picocli”是一个单文件Java框架,用于解析命令行参数并生成精美,易于定制的用法帮助消息。 有颜色。” 这篇文章简要概述了如何使用Picocli 0.9.7处理Java代码中的命…

navicat运行sql文件慢_SQL进阶之路——入门

一、初步了解SQL数据库:用来存放数据关系数据库:1.含有多张表 2.各表之间有关系关系数据库中表的样式:a.每个表1个表名 b.每个表中包含记录列名的列和记录数据的行 c.利用主键用来标识数据的唯一性关系数据库中每个表之间如何建立联系&#x…

java登录界面命令_Java命令行界面(第19部分):jClap

java登录界面命令本系列中第19个帖子的重点是从Java代码解析命令行参数是jClap ( Java命令行参数解析器 ),不应与JCLAP库混淆,该库是我本系列前 一篇文章的重点。 上 一篇 文章介绍了Giles Winstanley( snaq.net &…

weka分类器怎么设置样本类别_【程序喵笔记】小样本学习1.0

小样本学习前几天接触小样本学习 Few-Shot Learning,感觉很是有意思。看到Shusen Wang老师的讲解,感觉很棒~持续学习~学会学习 Lean to learn小朋友去动物园,见到未知的动物,他虽然不知道类别,但是给他看一些卡片&…

maven 生成本地库_在2017年从Maven工件生成P2存储库

maven 生成本地库几年前,我写了一篇博客文章,介绍如何基于Maven工件生成P2存储库。 如今,这种描述的方法已经过时了,我想展示一种基于p2-maven-plugin的新方法,该方法是为解决此问题而创建的。 Maven构建生命周期中的…