Win10构建Python全栈开发环境With WSL
Win10构建Python全栈开发环境With WSL
在学习Python全栈过程中,随着后面地深入,进入实际项目地开发阶段后,越发地发现,项目要使用的第三方软件(redis git等)或者外界(支付宝开放平台/微信开放平台)联系越来越多,自己构建一个开发web服务,以及Python多版本切换问题(pyenv只支持在类linux环境)。于是对linux依赖也越多。自己也在阿里云买了一个ECS,但是本地电脑也需要一个linux环境,于是乎发现了WSL。然后在网上查了很多WSL构建各种开发个人电脑开发环境的文章,借此文总结记录一番。为什么不用mac:买不起;还有种草surface pro了
博文图片挂了临时解决办法
启动WSL
可google有很多
选择Ubuntu发行版系统
其它评分好像很低。也比较熟悉启动后会先安装,然后提示创建一个新系统的用户名和密码,注意这个用户不是root权限用户。但是有sudo执行权限。sudo -i。
从win store 安装的这个系统,打开后的命令终端是太丑,所以网络上大多都没有使用。
总结
最后,我实在不想自己总结了,因为有人给我们总结的已经非常非常好了,直接跳转去学习吧《Dev on Windows with WSL》
对《Dev on Windows with WSL》的补充
'文章'在下文都是特指《Dev on Windows with WSL》
- 文章中的三种terminal (Powershell,hyper, terminus) 都是提到了使用特定的字体。因为oh-my-zsh插件中如果使用powerlevel9k主题,对于powerlevel9k主题是要依赖很多icon字体的,这些字体一般的字体如微软雅黑等,都是没有特殊icons的,要单独安装字体。推荐的是nerdfonts,nerdfonts算是一个补丁字体,nerdfonts官网提供了打了nerdfonts补丁的很多种类完整字体,选择你喜欢的下载,然后安装即可。然后就可以在三种terminal中设置字体为我们下载安装的字体了。具体使用见文章
- 博主还提到了一个powerline字体,这个也是类似nerdfonts,是补丁字体,powerline也提供了这些字体的安装,但是powerline项目文档没提供windows端的补丁字体的安装,但是网上有人给出了安装过程,参考How to install Powerline fonts in Windows 按照文章步骤一步一步就能安装上powerline字体的各种集合了。注意powerline字体是powerlevel9k指定的,其实powerlevel9k是兼容使用nerdfonts的。毕竟设置的特殊icon字符都是已unicode编码,只要编码能对了上一个icon字符即可。需要注意:使用nerdfont的powerlevel9k需要配置一个配置选项:
文章作者也提供了自己的配置,里面也有这个选项的设置。 - 对于wsl的每一个用户都需要配置安装自己的oh-my-zsh。
- 对于terminus在设置是千万不要点击'dock the terminal',这里有一个bug,会让terminus不显示。解决办法:issue里面的办法试了没用,我自己有一个办法:利用window的分屏,拖动一个应用到右边框,然后会提示左右分屏,然后选择左边屏幕程序,这时候就有terminus,选择terminus,这样terminus就神奇的出现了。
- 这里有一个新认知:terminal程序的字体,要和其连接的shell传输到terminal端的字符要匹配上,oh-my-zsh发送了一些icon font的Unicode字符给terminal,这时候的terminal是解析不出来的,会乱码一样显示一个方框,这是如果terminal安装了icon font字体,那么termianl就能正常显示了。
- 注意,最好安装的任何东西都是通过normal user 账号安装操作,需要提升权限用sudo,因为只有这个normal用户的bash或zsh的环境变量PATH才包含了windows系统的*.exe程序。
- 建议:node.js 通过nvm安装;python 通过 pyenv安装;
至于redis/mysql安装,google ubuntu安装reids和mysql就一抓一大把,我的博客有详细redis介绍编译安装,读者可以参考。 - 其实使用了oh-my-zsh后感觉每次提示行显示出来都会比较慢。所以还是需要效果好看影响了性能,有时间再换个主题优化一下。
附:我的zsh效果图和配置
- 效果图:
- normal user:
- root user:
- 结合terminal效果:
- 配置:
都是在~/.zshrc中有关powerlevel9k等配置,增加这些配置选项即可:
- normal user:
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon root_indicator context dir vcs status)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
POWERLEVEL9K_DISABLE_RPROMPT=true
POWERLEVEL9K_STATUS_CROSS=true
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=$'\uE0B4'
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=$'\uE0B6'
POWERLEVEL9K_MODE=nerdfont-complete
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_first_and_last
# POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="╭"
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=""
# POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="╰\u276F\u276F\u276F "
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="\u276F\u276F\u276F "
POWERLEVEL9K_OS_ICON_FOREGROUND="black"
POWERLEVEL9K_OS_ICON_BACKGROUND="magenta"
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND="black"
POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND="black"
POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND="cyan"
ZSH_THEME="powerlevel9k/powerlevel9k"
# # Change ls colours
LS_COLORS="ow=01;36;40" && export LS_COLORS
#
# # make cd use the ls colours
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
autoload -Uz compinit
compinit
- root user:
root 和 normal用户不一样就是 POWERLEVEL9K相关的配置了,其它配置都一样。
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon root_indicator context dir vcs status)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
POWERLEVEL9K_DISABLE_RPROMPT=true
POWERLEVEL9K_STATUS_CROSS=true
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=$'\uE0B4'
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=$'\uE0B6'
POWERLEVEL9K_MODE=nerdfont-complete
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_first_and_last
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=""
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="\u276F\u276F\u276F "
POWERLEVEL9K_OS_ICON_FOREGROUND="black"
POWERLEVEL9K_OS_ICON_BACKGROUND="magenta"
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND="black"
POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND="black"
POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND="cyan"
POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND="hotpink"
POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND="yellow1"
POWERLEVEL9K_ROOT_INDICATOR_BACKGROUND="hotpink"
POWERLEVEL9K_ROOT_INDICATOR_FOREGROUND="grey3"
POWERLEVEL9K_ROOT_ICON=$'\uf21e'
补充下python virtualenv环境
效果图:
配置修改:
~/.zshrc 文件修改
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(virtualenv os_icon root_indicator context dir vcs status ) # 添加virtualenv
plugins=(
# git
zsh-autosuggestions
virtualenv # 添加插件
)
Win10构建Python全栈开发环境With WSL的更多相关文章
- 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
python全栈开发笔记第二模块 第四章 :常用模块(第二部分) 一.os 模块的 详解 1.os.getcwd() :得到当前工作目录,即当前python解释器所在目录路径 impor ...
- python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)
昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...
- python全栈开发从入门到放弃之迭代器生成器
1.python中的for循环 l = [1,2,3,4,5,6] for i in l: #根据索引取值 print(i) 输出结果: 1 2 3 4 5 6 2.iterable 可迭代的 可迭 ...
随机推荐
- 2017OKR年终回顾与2018OKR初步规划
一.2017OKR - 年终回顾 自从6月份进行了年中总结,又是半年过去了,我的2017OKR又有了一些milestone.因此,按照国际惯例,又到了年终回顾的时候了,拉出来看看完成了多少.(以下目标 ...
- 【Android学习笔记】Android Studio简单断点调试
首先点击断点调试按钮运行App 启动之后,会弹出如下图的提示框,不要管,几秒之后这个弹框会自动消失,然后App会成功运行. 下面介绍一下断点调试的相关操作按钮对应的功能: 按钮1的功能:从当前断点跳到 ...
- 基于 HTML5 WebGL 的低碳工业园区监控系统
前言 低碳工业园区的建设与推广是我国推进工业低碳转型的重要举措,低碳工业园区能源与碳排放管控平台是低碳工业园区建设的关键环节.如何对园区内的企业的能源量进行采集.计量.碳排放核算,如何对能源消耗和碳排 ...
- SSM-SpringMVC-23:SpringMVC中初探异常解析器
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客要讲的是异常解析器,SimpleMappingExceptionResolver简单映射异常解析器 可 ...
- 在线OJ的小demo
牛课网OJ规则 用readLine()代替read_line() 用readLine()代替read_line() 用readLine()代替read_line() 用readLine()代替read ...
- jQuery学习之旅 Item8 DOM事件操作
1.jquery页面载入事件 1.传统加载事件 <body onload="函数名()"> 页面全部html和css代码加载完成之后再调用指定的onload函数 win ...
- 高性能Server---Reactor模型【转载】
原文链接:http://www.ivaneye.com/2016/07/23/iomodel.html 无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮 ...
- rabbitmq 脑裂(网络分区)
1.产生的原因 https://blog.csdn.net/zyz511919766/article/details/45198055 2.相关配置.如何规避 https://blog.csdn.ne ...
- 开发你的第一个BLE应用程序—Blinky
本文将和大家一起编写我们的第一个BLE应用程序:Blinky(闪灯程序),哪怕你之前没有任何BLE开发经验,也不用担心,只要跟着文中所述步骤,你就可以一步步搭建自己的第一个BLE应用程序.通过这个Bl ...
- BZOJ_5180_[Baltic2016]Cities_ 斯坦纳树
BZOJ_5180_[Baltic2016]Cities_ 斯坦纳树 题意: 给定n个点,m条双向边的图.其中有k个点是重要的.每条边都有一定的长度. 现在要你选定一些边来构成一个图,要使得k个重要的 ...