python虛擬環境virtualenv、virtualenv下運行IDLE、powershell 運行腳本由執行策略引發的問題

1、爲何要建立虛擬環境:html

  應爲在開發中會有同時對一個包不一樣版本的需求,建立多個開發環境就能解決這個問題。或許也會有對python不一樣版本的需求,這就須要使用程序來管理不一樣的版本,virtualenv與virtualenvwrapper就比如能創造出來一個一個的獨立容器,各個容器之間互不干擾,因此咱們就能夠在每一個容器中安裝咱們須要的依賴包python

  虛擬環境是Python解釋器的一個私有的副本,在這個環境中你能夠安裝私有包,並且不會影響系統中安裝的全局Python解釋器。虛擬環境很是的有用,能夠在系統中Python解釋器中避免包的混亂和版本的衝突。爲每一個程序單首創建虛擬環境能夠保證程序只能訪問虛擬環境中的包,從而保持全局解釋器的乾淨簡潔,使其只做爲(更多)虛擬環境的源。web

 

2、virtualenv 與 virtualenvwrapper-winshell

  virtualenvwrapper-win能夠看作是對virtualenv的優化,前者可讓你省去操心虛擬環境存放在不一樣的文件夾下帶來的管理問題,注意必須在virtualenv安裝成功的基礎上安裝app

安裝virtualenv python2.7

$ pip install virtualenv 

  等待一會出現successfully...就說明成功了優化

 

virtualenv使用步驟命令網站

#先使用cd命令進入到你要虛擬環境存放的目錄  cd操做方法見:https://www.cnblogs.com/Gaoqiking/p/10528079.html
$ cd C:\Users\Administrator.SC-22\AppData\Local\Programs\Python\Python37\virtual_environment
$ virtualenv envname #建立一個虛擬環境,envname爲環境名,也是建立的文件夾名
#而後你須要進入上名新建立的文件夾下的scripts文件夾
$ cd envaname/scripts #也能夠以絕對目錄進去
$ cd  cd C:\Users\Administrator.SC-22\AppData\Local\Programs\Python\Python37\virtual_environmentenvaname/scripts    #這是絕對目錄,下次你能夠直接這樣進入
$ activate #激活 其實是執行scripts裏面的activate.bat

  當成功激活後會顯示虛擬環境名(powershell有些麻煩我認爲),你不用關注我爲何後面有一個 (拉姆他符號)spa

 

在虛擬環境中使用IDLE.net

  當咱們建立了虛擬環境後,如果正常打開IDLE,是沒法訪問虛擬環境裏面的包的,須要在命令行裏輸入

$ python -m idlelib.idle  #注意,須要當前的虛擬空間已經激活

  -m是將庫中的模塊當作腳本去運行

  咱們還能夠只在IDLE裏編輯,而後運行的時候不按F5而是用命令行運行程序

(envs)C:\Users\Administrator.SC-> python ./envs/web_go/server.py #注意路徑

  

 

virtualenv關閉虛擬環境

$ deactivate

 

—system-site-packages 參數

  使用這個參數建立的隔離環境能讓你直接引用 /usr/lib/python2.7/site-packages (即本機全局site-package目錄)中的依賴包,只在擁有全局site-packages目錄的讀寫權限,而且你的應用要依賴其中的模塊的狀況下,該參數會頗有用。其餘狀況下不必使用該參數

virtualenv --system-site-packages -p python3 ./venv #-p爲指定解釋器所用的版本

  

 

  至此,咱們就成功建立了一個虛擬環境,裏面只有一些必須的頭文件,咱們就能夠安裝咱們須要的依賴包了不過若是想讓使用體驗更完美,咱們還能夠選擇virtualenvwrapper-win

 

安裝virtualenvwrapper-win(注意不是virtualenvwrapper)

$ pip install virtualenvwrapper-win

 

建立虛擬環境

  完成後會自動進入,且不須要像virtualenv同樣先指定文件夾(若是不指定會存在當前目錄下),這個能夠直接運行命令,虛擬環境會被存放在一個固定的文件夾(見下圖框選)

$ mkvirtualenv envname

  

  

配置

  假如你想改變存放的文件夾,你要配置系統環境變量(注意是新建系統變量)

  

經過設置系統變量「WORKON_HOME」,咱們就爲virtualenvwrapper-win建立的虛擬環境從新制定了存放目錄,你能夠將原有的文件拷貝過去

 

使用workon 命令進入虛擬環境

  

$ workon  envname     # 進入虛擬環境名爲envname

$workon     #會顯示全部的虛擬環境

 

退出  

$ deactivate

 

3、更多信息與參考經驗

  virtualenv中文文檔:https://www.bookstack.cn/read/virtualenv-zh/date-2018.08.27.08.08.23

  https://blog.csdn.net/godot06/article/details/81079064

    https://www.cnblogs.com/cwp-bg/p/python.html

 

4、遇到問題  

  問題:Suggestion [3,General]: 找不到命令 activate,但它確實存在於當前位置。默認狀況下,Windows PowerShell 不會從當前位置加載命令。若是信任此命令,請改成鍵入「.\activate」。有關詳細信息,請參閱 "get-help about_Command_Precedence"。

  解決辦法:按照提示「改成鍵入.\activate」後又出現另外錯誤:

  問題:.\activate : 沒法加載文件 C:\Users\Administrator.SC-2002132\AppData\Local\Programs\Python\Python37\virtual_environment\.virtualenvs\envname\scripts\activate.ps1,由於在此係統上禁止運行腳本。有關詳細信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

  解決辦法:認真閱讀提示,進入提示網站,發現是執行策略問題,有幾個解決辦法

  一是能夠執行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser   RemoteSigned是執行策略, CurrentUser是策略做用域,,這些均可以在網站上找到解釋

  二是能夠直接複製腳本內容進去執行

  三是能夠選用cmd來運行

  四是氣運丹田,大喊一聲「媽」,或者關機解決

相關文章
相關標籤/搜索