Win10構建Python全棧開發環境With WSL === [toc] 在學習Python全棧過程中,隨著後面地深入,進入實際項目地開發階段後,越發地發現,項目要使用的第三方軟體(redis git等)或者外界(支付寶開放平臺/微信開放平臺)聯繫越來越多,自己構建一個開發web服務,以及Pyth ...
目錄
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 # 添加插件
)