Win10構建Python全棧開發環境With WSL

Win10構建Python全棧開發環境With WSL

在學習Python全棧過程當中,隨着後面地深刻,進入實際項目地開發階段後,愈加地發現,項目要使用的第三方軟件(redis git等)或者外界(支付寶開放平臺/微信開放平臺)聯繫愈來愈多,本身構建一個開發web服務,以及Python多版本切換問題(pyenv只支持在類linux環境)。因而對linux依賴也越多。本身也在阿里雲買了一個ECS,可是本地電腦也須要一個linux環境,因而乎發現了WSL。而後在網上查了不少WSL構建各類開發我的電腦開發環境的文章,藉此文總結記錄一番。爲何不用mac:買不起;還有種草surface pro了python

博文圖片掛了臨時解決辦法
mysql

啓動WSL

  • 可google有不少linux

  • 選擇Ubuntu發行版系統
    其它評分好像很低。也比較熟悉
    git

  • 啓動後會先安裝,而後提示建立一個新系統的用戶名和密碼,注意這個用戶不是root權限用戶。可是有sudo執行權限。sudo -i。
  • 從win store 安裝的這個系統,打開後的命令終端是太醜,因此網絡上大多都沒有使用。web

總結

最後,我實在不想本身總結了,由於有人給咱們總結的已經很是很是好了,直接跳轉去學習吧《Dev on Windows with WSLredis

對《Dev on Windows with WSL》的補充

'文章'在下文都是特指《Dev on Windows with WSL》sql

  • 文章中的三種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效果圖和配置

  • 效果圖:
  1. normal user:

  2. root user:
  3. 結合terminal效果:
  • 配置:
    都是在~/.zshrc中有關powerlevel9k等配置,增長這些配置選項便可:
  1. 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
  1. 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環境

效果圖:
shell

配置修改:ubuntu

~/.zshrc 文件修改
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(virtualenv os_icon root_indicator context dir vcs status )  # 添加virtualenv

plugins=(
#  git
  zsh-autosuggestions
  virtualenv  # 添加插件
)
相關文章
相關標籤/搜索