Python的环境搭建——万丈高楼平地起
Python的环境搭建,远程连接,端口映射,虚拟机
写在正文之前
python语言的开发环境还是相对比较简单的,但是也是有很多需要注意的地方,对于初次接触python或者以前很少用到虚拟环境的朋友来说,还是需要花费一些心思的。环境是编程开发的先决条件,如果环境没有配置搭建好,往往是以各种报错告终,或者文件创建了但是不知道存放到哪里去了。编程环境的搭建就像建房子之前的打地基,如果在没有弄清地基所在地的地质情况下,乱打一气,往往根基不牢,所建的房子不够牢固,也达不到我们期望的寿命。
如果你正在学习python,且直到现在也没有关注过python的环境搭建问题,那么你可以收藏本篇文章,希望对你有所帮助。
编程语言的种类
之所以介绍编程语言的种类,是希望我们对自己所用的python到底是什么语言有个基本的认识,这样对我们的环境搭建也有帮助。
机器语言
机器语言是用纯粹的二进制数据表示的语言,是电脑可以真正识别的语言。编程语言就是从机器语言开始的,但是机器语言非常困难,学习机器语言需要大量的硬件知识,因此全球用的人极少,现在也就只有少数的芯片厂商才用了。
汇编语言
汇编语言是一种面向机器的编程语言,使用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。由于不同设备中的汇编语言对应不同的机器语言,因此汇编语言不具备平台可移植性。现今,也就嵌入式开发或驱动优化等领域应用到汇编语言了。
高级语言
高级语言是高度封装了的编程语言,相较于机器语言与汇编语言,它更像人类的语言表达方式,但是机器不能直接读懂高级语言,需要将其“翻译”为机器语言,机器才能识别。而将高级语言翻译成计算机语言的方式有两种:编译,解释。两种方式的区别在于翻译的时间不同。
解释型语言:逐字逐句的翻译,有一个解释器,脱离不了解释器,python就是解释型语言。因此,我们的python代码运行的本质就是通过python解释器执行python脚本。
编译型语言:通过编译器,将源代码一次性翻译成打包成机器码,可执行文件,打包好后脱离了编译器
IDE 集成开发环境——Pycharm
集成开发环境(IDE)是提供程序开发环境的应用程序,包括解释器/编译器、编辑器和调试环境,一般也包括图像用户界面。其将代码编写、分析、解释/编译、调试等功能一体化,因而大大提高了开发的效率。而Pycharm就是一个优秀的集成开发环境,本文将利用Pycharm进行python的环境搭建。
Pycharm开启界面
虚拟机与端口映射
什么是虚拟机?
虚拟机(VM)是指通过软件仿真模拟计算机的各种功能,具有完整系统功能的且在隔离环境中运行的计算机系统。它允许你在当前的操作系统中允许其他操作系统,你可以在虚拟机中安装你想要安装的任何软件而不用担心它是否会与当前的操作系统起冲突。通常情况下,我们选择Windows系统、Linux系统或者MacOS系统作为我们的物理机(本机)的操作系统,在其中安装虚拟机以测试其他的操作系统。
常用的虚拟机
流行的虚拟机软件有VMware和VirtualBox。
VirtualBox:网络端口映射配置简单
VMware:网络端口配置相对复杂,且IP会有租期,若不希望每次使用都要重新配置端口映射,则需要延长其IP租期。
本文采用VirtualBox建立虚拟Linux系统Ubuntu。
为什么要装虚拟机?
1) 兼容性问题:我们常用的操作系统是Windows操作系统,在一个系统中安装大量的应用后,一些不兼容的软件会起冲突,破坏系统,而这是我们所不希望看到的。
2)安全性问题:有些hacker或者好奇宝宝,喜欢下载一些来历不明的软件,而这些软件往往都不怀好意,带有各种病毒,将下载下来的软件隔离在了虚拟机中后,最差的情况也只是删了虚拟系统,重新安装一个,对你物理机的文档不会有任何影响。
3)其他系统爱好者:想学习Linux或者MacOS操作系统,但是实际工作学习生活当中又离不开Windows操作系统,这时,虚拟机便是一个非常好的选择。
4)通用环境的配置:由于教学或者编程开发的需要,往往需要在多台机器配置一样的环境,如果在每台机器的cmd窗口一个一个pip install xx,安装mysql、redis等,不知道能安装到什么时候,如果这个时候有一台机器的虚拟环境以及配置好了,我们直接将其环境配置和虚拟系统打包,在另外的机器只需安装好虚拟系统就可以利用相同的环境了。
端口映射
电脑与互联网的连接需要通过IP才能实现,一台电脑只能通过一个IP与互联网相连,但是一台电脑中需要上网的程序一般都不止一个,譬如QQ,微信等程序都要上网,这时候怎么办?这就需要通过端口来解决。简而言之,【ip+端口】才能找到程序,实现程序的上网功能。
整台电脑一共有65535个端口。端口都是整数,如1024端口、80端口、22端口等,80端口和22端口属于周知端口(80端口:http端口,22端口:ssh端口)。
本机与虚拟机就相当于两个独立的计算机,因此,要实现本机与虚拟机之间应用的通信,需要进行端口映射。
端口映射的配置:
进入【Oracle VM VirtualBox管理器】,选中安装的虚拟系统【ubuntu123】,【鼠标右键】后选中点击【设置】或【ctrl+s】或者直接点击上面一栏的齿轮型【设置(S)】按钮,进入【Ubuntu123 -设置】界面,选中左侧选项卡中的【网络】,进入【网络】设置界面,然后点击【高级】下拉框,展开其下拉框,如下图所示:
然后点击【端口转发】,进入【端口转发规则】弹窗,默认是【TCP】协议,这里我们不做直播等需要用到【UDP】协议的地方,就默认用【TCP】协议了,【主机IP】一般默认是【127.0.0.1】,【主机端口】设置成你想要的端口,这里改为【1234】,【子系统端口】改为22(这里的子系统端口就是你虚拟机的端口,22是ssh协议端口)
隔离Python运行环境
为什么要有隔离的python运行环境?
在我们的实际工作中,往往有很多个项目,而每个项目所用的框架不一定版本相同,以Django框架开发的项目为例来说,有的项目使用Django1.9版本,有的项目使用Django2.0版本,但我们的python环境不能在一个环境运行两个不同版本的Django框架。因此,我们需要隔离的python运行环境。在我们的实际工作中,一般都是一个项目复制一个python环境。
要有隔离的python运行环境那么久需要用到虚拟环境,下面介绍虚拟环境的相关知识:
virtualenv
Windows和Linux系统下都可以创建虚拟环境。
virtualenv windows
pycharm 2018版本以上在创建python项目时,都会自动创建一个虚拟环境,也即文件夹venv。
windows系统下虚拟环境的创建:
在你想要创建虚拟环境的文件夹下【pip install virtualenv】,【Tips:一定要先cd到你的目标文件夹】,完成后便可以用【virtualenv virtualenvname】命令创建虚拟环境【virtualenvnam】。
激活你创建的虚拟环境:【virtualenvnam\Scripts\activate】
退出虚拟环境:在虚拟环境下,【deactivate】
virtualenvwrapper linux
Linux系统下,virtualenvwrapper实际封装了virtualenv ,再加了几个工具
Linux系统下虚拟环境的相关命令
查看现有虚拟环境: workon
切换虚拟环境: workon envname
退出虚拟环境: deactivate 【Tips:输入几个字母后,按Tab键自动补全】
创建一个虚拟环境: mkvirtualenv -p /usr/bin/python3.6 virtualenvname
/usr/bin/python3.6为你虚拟系统中所装的python解释器路径,也是你所建的虚拟环境想要copy的python解释器
利用Pycharm远程配置虚拟机解释器
事先,在你的虚拟机中创建好一个虚拟环境vitualenvname
新建一个项目【New Project】
进入【New Project】界面,展开【Project Interpreter: Existing interpreter】下拉框,选中【Existing interpreter】单选框,然后点击下图中被红色框框框起来的【...】按钮,在弹窗中选中左侧的【SSH Interpreter】选项卡,然后如下图配置,Host为你开始端口映射时的主机IP,【Port】为你开始端口映射时映射的主机端口号
【Username】为你连接的虚拟系统的用户名。
配置完后,点击【Next】,接下来在下图界面中输入你连接的虚拟系统的密码,点击【Next】
然后在进入的【Add Python Interpreter】弹窗中添加python解释器路径,此路径为你安装的虚拟环境下的python解释器路径,这里我们创建的虚拟环境为【first】
配置完后,点【Finish】完成python远程解释器的配置。进入下图界面
然后更改最上面一行的【Location】和最下面一行的【Remote project location】
【Location】中【first】为项目名,前面为项目的存放路径。【Remote project location】更改的是你的项目代码在虚拟机中存放的位置。更改好,点击【Create】,这就完成了第一个项目的创建,如下图所示。好了,松了一大口气了。但是,请不要着急,这还不算完。是不是右边的【Remote Host】看的非常不爽?接下来,就是这方面的配置了。
按下图路径,点击【Configuration】
得到【Deployment】弹窗
重命名连接名称:选中连接【Shift+F6】重命名连接,最终将【Deployment】的【Connection】和【Mapping】选项卡如上下两图配置
这就基本上完成了通过pycharm远程连接虚拟机python虚拟环境中python解释器的配置。但是这还没有完全结束,我们还需要给远程调试器进行配置。
这里就以Django框架为例了。
先在虚拟机中新建一个Django框架的项目,在虚拟环境【first】下,在你所想创建的Django项目文件夹下,通过命令【django-admin startproject projecname】来创建一个Django项目
点击上图的【Add Configuration】,弹出调试配置窗口,点击【+】号,新增【Django Server】模板,如上图配置,【Host】配置你的虚拟机地址,【Port】配置你的虚拟机端口。
在菜单栏File中选中Settings,如图设置,【Django project root】为你本机中该Django项目的存放路径,settings为你所创键的Django项目中的settings.py文件
如此,大功告成,接下来就可以开心地开始码代码了!
文件的远程同步
默认是自动上传,如果没有自动上传,也没用关系
对于远程文件,在【Remote Host】窗口中,选中你想操作的任何文件或文件夹,鼠标右键,upload here上传,download from here下载;本机的文件类似,选中你想操作的任何文件或文件夹,鼠标右键,然后选中Deployment,upload to projectname上传,download from projectname下载。
好了,python的环境配置差不多就这么多了,如果对你有所帮助,不妨关注一波博客。
如果有错误还请大神们不吝指正。
Python的环境搭建——万丈高楼平地起的更多相关文章
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- Eclipse中Python开发环境搭建
Eclipse中Python开发环境搭建 目 录 1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...
- python学习之python开发环境搭建
Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
- eclipse python开发环境搭建
eclipse python开发环境搭建[非原创] 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-wi ...
- ubuntu下python flask环境搭建
ubuntu下python flask环境搭建 1. 安装pip sudo apt-get install python-dev pyhton-pip 2. 安装virtualenv sudo apt ...
- python服务器环境搭建(2)——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...
- Python + Appium 环境搭建
---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1 安装前准备工作 搭建环境所需要的安装文件已经下载好 ...
- 自动化测试 Appium之Python运行环境搭建 Part2
Appium之Python运行环境搭建 Part2 by:授客 QQ:1033553122 实践环境 参见 Appium之Python运行环境搭建 Part1 环境部署 1.安装Android SDK ...
随机推荐
- 2015/11/2用Python写游戏,pygame入门(2):游戏中的事件和显示
pygame是一个比较大的库,以我这点弱小的实力是没办法详解的.所以我只讲我懂得那些部分,其他部分由大家慢慢查找了解. ------------------------------- 我用pygame ...
- MongoDB 分页
使用Skip和limit可以如下做数据分页: Code: page1 = db.things.find().limit(20) page2 = db.things.find().skip(20).li ...
- Centos7系统环境下Solr之Java实战(二)制定中文分析器、配置业务域
制定中文分析器 1.把IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下 2.把扩展词典.配置文件放到solr工程的WEB-INF/classes目录下. 配置一个Fiel ...
- 【CF802C】 Heidi and Library (hard)(费用流)
题目链接 感觉跟餐巾计划问题有点像.费用流. 决定每天买不买不太好搞,不如先把所有东西都买进来,再卖掉不必要的. 拆点,每个点拆成\(x,y\). 源点向每个点的\(x\)连费用为当天的价格,流量为1 ...
- jquery实现简单轮播
先上简单的html代码 <!DOCTYPE HTML> <html> <head> <link rel="stylesheet" type ...
- NYOJ 1073 最大值 (模拟)
题目链接 输入N个数,M次查询. 每次查询给出一个数x. 要求:每次查询输出前x个数中第i小的数.(i为第i次查询) 你可以假设M <= N,Xi <= Xi+1 <= Xi+2 & ...
- Docker微容器Alpine Linux
Alpine 操作系统是一个面向安全的轻型 Linux 发行版. 它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功 ...
- JSON.parse()——json字符串转JS
JSON 通常用于与服务端交换数据. 在接收服务器数据时一般是字符串. 我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象. 语法 JSON.parse(text[, ...
- 3-Python内置结构-列表
目录 1 Python内置数据结构 1.1 数值型 1.2 math模块 1.3 round圆整 1.4 常用的其他函数 1.5 类型判断 2 列表 2.1 索引访问 2.2 列表和链表的区别 2.3 ...
- Linux下的lds链接脚本详解【转】
转自:http://www.cnblogs.com/li-hao/p/4107964.html 转载自:http://linux.chinaunix.net/techdoc/beginner/2009 ...