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

来源:https://www.cnblogs.com/ZJiQi/archive/2019/02/24/10428377.html
-Advertisement-
Play Games

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效果圖和配置

  • 效果圖:
  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環境

效果圖:

配置修改:

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

plugins=(
#  git
  zsh-autosuggestions
  virtualenv  # 添加插件
)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • powershell腳本站點的搭建 一、Powersploit Powersploit是一款基於powershell的後滲透(Post-Exploitation)框架,集成大量滲透相關模塊和功能。 下載powersploit github地址: https://github.com/mattifes ...
  • 以各個城市的天氣為例, 先準備下麵的數據: 印度天氣的相關信息: 美國天氣的相關信息: 用 concat 組合上面兩個 dataframe: 輸出: 上面的輸出最左邊的序列號是重覆的, 原因是數據分別來自兩個 dataframe 的索引值, 可以通過忽略原本的索引來做改變: 輸出: 下麵再介紹另一種 ...
  • 根據inspect模塊官文文檔中關於函數參數類型的相關說明,python函數參數共有五種類型,按順序分別為:POSITIONAL_ONLY、POSITIONAL_OR_KEYWORD、VAR_POSITIONAL、KEYWORD_ONLY、VAR_KEYWORD。如圖: POSITIONAL_ONL ...
  • mybatis config.xml里標簽可以放置多個environment,這裡可以切換test和develop數據源 databaseIdProvider提供多種資料庫,在xml映射文件里選擇databaseId即可使用對應的資料庫 Oracle的自增是使用Sequence實現的,若要獲取插入數 ...
  • 引言 - 沒得寫 最近工作上需要處理事情很多(接手, 維穩, 危機), 還有深入讀書計劃也提上了日程. 為了每月水經驗, 這裡帶大家寫個 C 的多值返回吧 : ) 後記 - 人生自古誰無死 老兵賣冰 - https://music.163.com/#/song?id=117573 歷史的長河中, 有 ...
  • 新聞 "Fable 2.2發佈,支持匿名記錄" "Paket提升還原時間" "Microsoft.Jupyter.Core預覽" ".NET Framework 4.8早期可訪問編譯版本3745" 博客 "使用SAFE技術棧進行服務端渲染" "CNTK 102.5:在F 的Jupyter里使用Gra ...
  • 文件上傳參考文檔:http://blog.didispace.com/spring-cloud-starter-dalston-2-4/ 文件下載參考文檔:https://blog.csdn.net/aaronsimon/article/details/82710979 我的spring boot ...
  • 導讀:Python貓是一隻喵星來客,它愛地球的一切,特別愛優雅而無所不能的 Python。我是它的人類朋友豌豆花下貓,被授權潤色與發表它的文章。如果你是第一次看到這個系列文章,那我強烈建議,請先看看它寫的前幾篇文章(鏈接見文末),相信你一定會愛上這隻神秘的哲學+極客貓的。不多說啦,一起來享用今天的“ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...