工具篇 | “手把手教你搭建一个全能的学习环境(包括但不限于Python)”

作者:逻辑熊猫 图片来源:截图 敬请朋友圈各种姿势转发*^_^*

一、前言

最近有读者问我关于自学使用的开发环境搭建的问题。所以特意在这里发一篇我本人为了学习和个人开发使用的环境。其实之前也讨论过相关的内容,只不过涉及的很浅。

我们知道目前主流三大操作系统,Windows,MacOS、Unix/Linux。其中MacOS和Unix暂且不谈。

Windows是桌面端的霸主,Linux也遍及大中小型服务器。然而,这俩货不兼容。可以说2的可以(Windows10开始增加了Linux子系统,这个不在讨论范围内)。二者其中之一很难满足所有人的需求。比如,想打个游戏,Linux基本就不考虑了。但是想编程搞个服务器啥的,又想贴近主流,又不得不考虑Linux的问题。

为了解决这个问题,使用虚拟机是肯定的。相信很多读者都有使用虚拟机的经验。最近一位读者给我的反馈是在虚拟中跑我的的程序有点卡。我也才意识到这个问题。Windows用户倾向于使用图形界面,所以在虚拟机中安装了桌面版的Ubuntu。这必然造成资源的浪费,同时,开发的效率也不高。这里介绍的是服务器版Ubuntu的安装与使用,以及几个有用的工具的使用。

二、准备工作

虚拟机软件:VMware14.0

系统镜像:Ubuntu Server 16.04 lts

免费SSH客户端:xshell

终端模拟管理系统:xmanager(xftp+xpassive)

1、关于VMware可以到官网下载,附上一条下载链接https://www.vmware.com/go/getworkstation-win

至于注册激活的问题,我放到阅读原文里面

2、关于Ubuntu Server 16.04lts也是到官网去下,其实UbuntuServer已经更新了18.04版本,但是我演示的是快速安装版,对18.04的支持比较差,不太方便,有经验的读者可以直接安装18.04版本。

3、xshell和xmanager的问题,这里请读者自己寻找自己需要的版本

如果对以上内容有任何疑问,可以在后台回复关键字“管理员”,与我联系。

三、操作步骤

由于都是Win平台下的软件,这里不演示安装过程,直接进入虚拟机安装Ubuntu。

1、打开虚拟机——>创建新虚拟机

2、根据向导,使用典型(推荐)配置,直接下一步

3、选择安装程序光盘映像文件

(我绝对不告诉你高级玩家一般都是选择第三个的)

4、这一步配置必要的信息

5、修改虚拟机名称和位置

6、指定磁盘容量

不用担心自己磁盘不够的问题,空出来个2G就足够保证安装了

7、准备好创建虚拟机

自定义硬件里面是这个样子滴

8、完全不同管它,自己就跑起来了

8、需要手动设置的环节

选择continue,换一个你喜欢的名字,继续continue

9、接下来是漫长的等待,然后完美的完成了安装

10、先登录进入,使用ifconfig查看IP地址,安装ssh服务器

用户名:logicpanda 密码:lp

使用命令

11、在本地主机打开shell,新建一个连接

12、配置会话属性

13、配置好登录信息

14、这里选择连接就OK

接受并保存

结果如图

15、这样一个完整可用的环境就配置好了。由于这个环境是刚配置好的,很多东西都没有,但是已经可以完成基本操作了,剩下的内容,我会使用我已经安装了很多工具的虚拟机来演示。中间忽略的内容请读者们自行完成。有不同的地方,欢迎私戳作者。

16、现在演示环境说明,操作系统为Ubuntu Server 18.04 LTS,要演示的内容为xft和xpassive的使用。需要用的工具有python3和pygame模块,刚安装好的操作系统可能会安装pip时出现无法定位软件包的问题。这个时候请考虑源码安装和换源。

源码安装请参考历史文章:《当包管理器不能帮你安装pip时怎么办?》

关于换源,这里找了一篇博客:https://blog.csdn.net/d5224/article/details/52025897

17.打开xftp,和步骤14相似,连接到虚拟机。

登录进去应该是这个样子的。然后上传一个包含图形界面的python程序源码。

关于这个源码,请参考历史文章:《Python | "写了个钟"》

上传源码(可以将文件拖拽到右侧窗口中)

命令行

18、打开xpassive。

xpassive打开之后会变成这个样子

之后在命令设置变量:DISPLAY=主机IP:0.0

并添加到环境变量:export DISPLAY

关于主机IP,可以在cmd中使用ipconfig查看,同步骤10.

为了一劳永逸,可以将变量DISPLAY永久添加到环境变量。

方法见如下链接:https://jingyan.baidu.com/article/b87fe19e6b408852183568e8.html

妥妥滴解决问题。

以上就是一个完整可用的自学环境搭建了。

四、其他工具推荐

【DiskGenius】这是一个磁盘操作软件,比如给硬盘分区,这里可以用来操作虚拟机硬盘。

【Vstart】这是一个桌面图标管理软件,当你安装了太多软件,又很多都是常用软件,可以试试。

【FastStone Capture(FSC)】截图录屏软件,很小很强大,也很蛋疼,本文截图使用的工具,缺点,没找到打马赛克功能。

【Notepad++】记事本的升级版,轻量,快速,支持代码高亮的编辑器。

【VS Code】强大的IDE。

【番茄土豆】效率工具,番茄工作法软件。

【typora】本地markdown编辑器。

【有道云笔记】非常好用的笔记软件。

五、其他方面的工具

1、C/C++方面

【C-free】【DevC++】非常适合初学者

【VS 2017】Windows开发者的必备工具,很强大的同时,也很庞大、

2、汇编语言方面

【DosBox】+【Masn】+【debug】

【MasmPlus】强大汇编IDE。win10的defence会报毒,然后直接被删。

【VMware+MS-Dos】也是不错的组合

3、Perl语言方面

【ActivePerl】和【StrawberryPerl】都很不错

【Padre】是一款不错的IDE

【PerlEdit】却更轻量

4、逆向方面

【OD】自然不必多说

【AsmFun】汇编指令查询器,相信会如虎添翼

5、给自己开发的小工具打个广告

【EasyBill】开发中的小工具,面向Python用户

详情请参考历史文章:《Python | 简易清单(EasyBill)增强版》

六、结尾

功能简介:领域包括了“面向 Python 基础,进阶和有趣应用”的一站式技术分享,挖掘学习者在学习当中遇到的各类问题并分享经验,关注实用技能和有趣新闻,感兴趣的敬请关注。

原文发布于微信公众号 - 逻辑熊猫带你玩Python(LogicPanda)

原文发表时间:2018-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏农夫安全

GitHub敏感信息扫描工具

功能设计说明 GitPrey是根据企业关键词进行项目检索以及相应敏感文件和敏感文件内容扫描的工具,其设计思路如下: 根据关键词在GitHub中进行全局代码内容和...

89080
来自专栏哲学驱动设计

使用 MarkDown & DocFX 升级 Rafy 帮助文档

21720
来自专栏酷玩时刻

银联支付-初次接触

银联开发平台 https://open.unionpay.com 平台分为三个角色

21260
来自专栏Java架构师进阶

java架构师之用Redis轻松实现秒杀系统

曾经被问过好多次怎样实现秒杀系统的问题。昨天又在CSDN架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。

1.3K20
来自专栏高性能服务器开发

(七)开源一款即时通讯软件的源码

在我的《服务器端编程心得》这个系列的第一篇至第六篇都是讲了一些零散的不成体系的网络编程细节。今天,在这篇文章中,我将介绍一款我自主开发的即时通讯软件flamin...

2.2K50
来自专栏杨建荣的学习笔记

运维中的接入管理梳理

数据库层的接入可以提炼出DAO层,通过工厂模式来提供灵活的配置接入,这会是一个通用的接口,同时其他数据库的接入也可以通过这种方式带来接入,提炼的结果就是...

10520
来自专栏向治洪

android系统分层

  Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户...

250100
来自专栏企鹅号快讯

使用Jest测试原生TypeScript项目

问题:我怎么才能收到你们公众号平台的推送文章呢? 最近写了一个wechat-colorpicker小项目。 主要是为了练习下TS。既然写了一个小库,我就想着顺便...

44160
来自专栏Java后端技术栈

小白入门:大型网站技术架构负载均衡技术介绍及学习资源推荐

十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱。经常在技术网站、文档中出现的“四层负载均衡”、“七层负载均衡”字眼有什么含义?有什么区别?对客户网络有哪些不...

10610
来自专栏Java架构师进阶

浅谈Nginx负载均衡与F5的区别

笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道“墙”,将请求分发到web服务器后,web服务器上的Ng...

22410

扫码关注云+社区

领取腾讯云代金券