python多環境下虛擬環境的搭建和使用

来源:https://www.cnblogs.com/KrianJ/archive/2018/04/02/8698023.html
-Advertisement-
Play Games

由於開發環境要求,或者實際需要。經常會出現python2.7和python3.x共存下的開發環境問題。虛擬環境的搭建可以很好的隔離Projects的開發環境。 1.首先解決python2.7和python3.x的pip問題 由於py2和py3版本都是使用的pip,然而我們在安裝Python3(>=3 ...


 

由於開發環境要求,或者實際需要。經常會出現python2.7和python3.x共存下的開發環境問題。虛擬環境的搭建可以很好的隔離Projects的開發環境。

1.首先解決python2.7和python3.x的pip問題

  由於py2和py3版本都是使用的pip,然而我們在安裝Python3(>=3.3)時,Python的安裝包實際上在系統中安裝了一個啟動器py.exe,預設放置在文件夾C:\Windows\下麵。這個啟動器允許我們指定使用Python2還是Python3來運行代碼(當然前提是你已經成功安裝了Python2和Python3)。

  如果你有一個Python文件叫 hello.py,那麼你可以在命令行這樣用Python2運行它

    py -2 hello.py

  類似的,如果你想用Python3運行它,就這樣

    py -3 hello.py

  或者在代碼文件的最開始加入一行

    #! python2; #! python3

  這樣,運行的時候你的命令就可以簡化為

    py hello.py

  使用pip

  由於Py2和Py3它們對應的pip都叫pip.exe,所以不能夠直接使用 pip install 命令來安裝軟體包。而是要使用啟動器py.exe來指定pip的版本。命令如下:

    py -2 -m pip install XXXX

  -2 還是表示使用 Python2,-m pip 表示運行 pip 模塊,也就是運行pip命令了。Python3版本:

    py -3 -m pip install XXXX

2.安裝,激活,退出虛擬環境

虛擬環境在cmd下的安裝主要有兩種方法:

(1) virtualenv

  win+R,輸入cmd,

  >>>pip install virtualenv  (2,3版本共存選擇如上命令行安裝)

  (ps:安裝過程中出現報錯: ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org, port=443) Read time out :,可以通過文章末尾提供的方法解決。)

  安裝完成後創建虛擬環境:virtualenv env,預設安裝在C:\Users\user_name\目錄下

  激活虛擬環境:命令行下,

    >>>cd env_name\Scripts

    >>>C:\Users\user_name\env27\Scripts\ activate.bat

    出現(env27) C:\Users\wj_19\env27\Scripts>即表示進入虛擬環境

  退出虛擬環境:同樣在Scripts目錄下,執行deactivate.bat即可退出

 

(2)virtualenvwrapper-win(Linux環境下virtualenvwrapper)

  win+R,cmd

  >>>pip install virtualenvwrapper-win  (版本自選)

  安裝完成後接下來就是相同的創建,激活等操作了

  創建虛擬環境:與virtualenv不同的是,virtualenvwrapper會自動將創建的env放在同一文件下,如創建一個叫py27.1的虛擬環境

    >>>mkvirtualenv env27.1

    初次創建時,virtualenvwrapper會在當前盤根目錄下自動建立一個虛擬環境的文件夾,然後將新建的env27.1存進去。

    創建結果和文件夾內容如圖:

 

      

  輸入workon顯示該目錄下所有虛擬環境,可以選擇不同的虛擬環境進行工作,即激活虛擬環境

    >>>workon py27.0

  當我們需要導入第三方的包(packages)時,在該虛擬環境下(一定要先激活使用的虛擬環境)比如導入requests:

    >>>pip install requests

  反之卸載:

    >>>pip uninstall requests

  結束後退出虛擬環境

    >>>deactivate

 

  

這是末尾:

  解決pip install vitualenv/virtualwrapper報錯的問題:

  我們在使用pip安裝virtualenv,scrapy等模塊報錯 :ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org, port=443) Read time out :
可以隨便新建一個文件,重命名為.py文件,複製下麵代碼到這個文件,然後在命令行運行。

  

 1 import os  
 2   
 3 ini="""[global] 
 4 index-url = https://pypi.doubanio.com/simple/ 
 5 [install] 
 6 trusted-host=pypi.doubanio.com 
 7 """  
 8 pippath=os.environ["USERPROFILE"]+"\\pip\\"  
 9   
10 if not os.path.exists(pippath):  
11     os.mkdir(pippath)  
12   
13 with open(pippath+"pip.ini","w+") as f:  
14     f.write(ini)  

 

  

  運行完後再重新試下

  >>>pip install virtualenv

  >>>pip install virtualenvwrapper-win

  完全ojbk。

  最後獻上解決方法的出處,供更多瞭解

    出處:https://segmentfault.com/q/1010000000496093
    答主:FGFW

    

  


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

-Advertisement-
Play Games
更多相關文章
  • HTML 1、一套規則,瀏覽器認識的規則。 2、開發者: 學習Html規則 開發後臺程式: - 寫Html文件(充當模板的作用) ****** - 資料庫獲取數據,然後替換到html文件的指定位置(Web框架) 3、本地測試 - 找到文件路徑,直接瀏覽器打開 - pycharm打開測試 4、編寫Ht ...
  • 本文主要介紹iReport軟體生成報表模板使用Jasper進行數據填充並生成pdf文檔的實現過程。 ...
  • 練習題 python 1、整理函數相關知識點,寫博客 2、寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素, 並將其作為新列表返回給調用者。 def odd_index(l): lis = [] for i in range(len(l)): 通過range設定索引範圍比通過元素找索引要 ...
  • 【基本的文件操作】 參數: 1、文件路徑; 2、編碼方式; 3、執行動作;(打開方式)只讀,只寫,追加,讀寫,寫讀! ...
  • 第一次作業 第一作業的主要難度在於判斷字元串的格式。在寫C語言代碼時發現,如果輸出格式錯在哪裡內容非常多,導致C語言雖然沒有仔細debug,但依然寫了好久。java使用正則表達式後可以簡化很多,但輸出錯在哪裡要增加的內容更多,所以只是對錯誤簡單地進行分類輸出。 正則表達式相關的類由Matcher和P ...
  • 創建動態Web工程打war包 ​ 創建動態Web工程打war包 ​ 創建動態Web工程打war包 ​ File→new→Maven Project→勾上create a simple project→然後next> ​ File→new→Maven Project→勾上create a simple ...
  • 對python中集合的理解 集合是一個無序的,不重覆的數據組合,它的主要作用如下: 去重,把一個列表變成集合,就自動去重了 關係測試,測試兩組數據之前的交集、差集、並集等關係 常用操作 ...
  • 在C++里,通過繼承和組合實現了代碼復用,使得開發效率提高,並且能夠通過代碼看到事物的關係 組合比繼承簡單,所以在寫代碼時先考慮能否組合,再來考慮繼承. 組合的特點 將其它類的對象作為當前類的成員使用 比如主機類,擁有 CPU/主板/記憶體/硬碟這4個對象成員,而這4個對象成員並沒有繼承主機類的特性和 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...