Centos7 python虛擬環境virtualenv和virtualenvwrapper簡單介紹

来源:https://www.cnblogs.com/caesar-id/archive/2019/05/06/10821105.html
-Advertisement-
Play Games

centos7 python3.6.2環境下virtualenv和virtualenvwrapper的簡單介紹。 ...


我的系統版本是

[root@localhost ~]# cat /etc/os-release

我的Python版本是

[root@localhost ~]# python3 -V

關於如何安裝Python請看我的django環境搭建的博客https://www.cnblogs.com/caesar-id/p/10791791.html

下麵我們來開始搭建基於Python3.6.2版本的虛擬環境virtualenv:

1、由於Centos自帶的yum源下載軟體比較慢,這裡我們使用國內阿裡的yum源。

備份系統自帶的yun源

[root@localhost ~]# mkdir /etc/yum.repos.d/backup

[root@localhost ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/

我們到阿裡的鏡像站https://opsx.alibaba.com/mirror選擇一個合適的yum源

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@localhost ~]# yum clean all        # 清除原來的yum緩存

[root@localhost ~]# yum makecache        # 生成新的緩存

2、安裝Python3的虛擬模塊virtualenv

[root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

 安裝後使用pip3  list進行查看

 3、創建virtualenv虛擬環境

[root@localhost opt]#cd  /opt

[root@localhost opt]# virtualenv --no-site-packages --python=python3 env_1

--no-site-packages:表示使用一個只有Python3的環境,而不導入原來Python3中安裝模塊。

--python=python3:指定要被虛擬的解釋器環境。

env_1:表示虛擬的Python環境目錄。

4、創建好虛擬環境後,需要激活虛擬目錄

[root@localhost opt]# source env_1/bin/activate      # 激活虛擬目錄

激活成功後我們發現原來的路徑前出現了虛擬環境的目錄,這樣我們便成功激活併進入到了虛擬環境中。

 我們來看下env_1的虛擬目錄下都有哪些文件

 我們在看看bin目錄下都有什麼

 查看下pip3命令

 我們可以發現現在的Python環境全部都是env_1下的Python環境。在來查看下當前虛擬環境是否是純凈的Python環境

 虛擬環境只有純凈的Python環境,沒有摻雜系統原本安裝的模塊,也許你現在還沒有發現他的魅力所在,下麵我們開始吧。

5、在env_1的虛擬環境下安裝django1.11.20

(env_1) [root@localhost opt]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.20

安裝好後我們使用pip3 list查看下

 安裝成功後,我們創建一個django項目django_1

(env_1) [root@localhost opt]# django-admin startproject django_1

(env_1) [root@localhost opt]# vim django_1/django_1/settings.py     # 修改配置文件允許其它主機可以訪問

 啟動django項目

(env_1) [root@localhost opt]# python3 django_1/manage.py runserver 0.0.0.0:8000

 訪問django項目前,我們需要暫時清空本機的防火牆規則,或者暫時關閉防火牆,否則在訪問本機8000埠時會被防火牆拒之門外的,我們新開一個shell。

[root@localhost opt]#iptables  -F  # 清空防火牆規則

  [root@localhost ~]# systemctl stop firewalld.service   # 也可以暫時關閉防火牆

如果上面一切順利的話,我們將看到如下界面。

 6、下麵我們在創建個虛擬環境env_2(註意:你需要另開一個新shell來創建虛擬環境env_2

[root@localhost ~]# virtualenv --no-site-packages --python=python3 env_2

7、激活虛擬環境

[root@localhost ~]# source env_2/bin/activate

此時我們在看下pip3和python3

 可以發現是env_2下的Python3和pip3,在來查看下pip  list

 

 發現還是純凈的Python環境,virtualenv正逐漸的向我們展示它強大的一面。下麵我們在env_2中安裝django2.0

8、安裝django2.0

(env_2) [root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==2.0

 9、創建django2.0的項目

(env_2) [root@localhost ~]# django-admin startproject django_2

(env_2) [root@localhost ~]# vim django_2/django_2/settings.py 

 10、啟動django2.0項目

(env_2) [root@localhost ~]# python3 django_2/manage.py runserver 0.0.0.0:9000

11、訪問django2.0項目

 

 

這樣我們便實現了在一個操作系統上同時運行django1.0和django2.0兩個環境,也許你可能覺得這還不夠,還有更多的功能等待我們去探索。

12、好了既然可以運行虛擬環境,下麵我們來看看如何退出虛擬環境。其實很簡單,如下:

(env_2) [root@localhost ~]# deactivate    # 退出虛擬環境

我們都知道Linux一切皆文件,所以如果想要刪除虛擬環境只需rm -r  env_1把虛擬環境的文件夾刪掉即可,好了virtualenv我們就簡單介紹到這裡。

如果想要瞭解更多功能,請訪問virtualenv官網https://virtualenv.pypa.io/en/latest/


 

virtualenv 雖然功能很好用,但是有一個最大的缺點就是每次開啟虛擬環境之前要去虛擬環境所在目錄下的 bin 目錄下 source 一下 activate,這就需要我們記住每個虛擬環境所在的目錄。

並且還有可能你忘記了虛擬環境放在哪以及該虛擬環境對應哪個項目。一種可行的解決方案是,將所有的虛擬環境目錄全都集中起來,例如/opt/all_venv/,並且針對不同的目錄做不同的事。但即使這樣在項目多的時候貌似也不是很方便,於是virtualenvwrapper便站了出來要解決這個問題,下麵我們簡單瞭解下virtualenvwrapper的使用。

1、安裝virtualenvwrapper

[root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper

安裝成功後看起來像下麵這個樣子:

2、安裝成功後,設置開機啟動。

我們可以在/etc/profile中設置開機自啟動,這樣的話會影響系統所有用戶,也可以在用戶家目錄下~/.bash_profile針對某個用戶進行設置。

這裡我們針對root用戶進行設置。

[root@localhost ~]# vim ~/.bash_profile      # 在配置文件的末尾我們添加如下配置

[root@localhost ~]# source  ~/.bash_profile     # 使文件立即生效

3、我們在開一個shell登陸root,創建虛擬環境

[root@localhost Envs]# mkvirtualenv env_django_1

使用pip3 list 查看一下:

 下麵的使用就和virtualenv類似了,這裡不再重覆。退出虛擬環境和virtualenv一樣

(env_django_1) [root@localhost Envs]# deactivate    # 退出虛擬環境

4、激活工作目錄和virtualenv不同,使用workon

[root@localhost Envs]# workon env_django_1    # 激活虛擬環境

5、查看有哪些虛擬環境

[root@localhost Envs]# lsvirtualenv 

6、刪除虛擬環境

[root@localhost Envs]# rmvirtualenv env_django_1

跟多有趣的內容請看官方文檔:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

 


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

-Advertisement-
Play Games
更多相關文章
  • 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 03 ...
  • 第一章:科普和Linux系統安裝 第1節:操作系統介紹OS:Operating System,通用目的的軟體程式硬體驅動進程管理記憶體管理網路管理安全管理文件管理OS分類:伺服器OS:RHEL,CentOS,Windows,Server,AI桌面OS:Windows10,Windows7,Mac OS ...
  • Java+Tomcat 環境部署 下麵在Centos7進行安裝Java+Tomcat,網上的很多文章,我在部署中都有些問題,下麵是我自己總結的一個安裝過程! 安裝Java環境 首先,我們先到Java官網下載JDK 這裡我下載jdk1.8版本的 https://www.oracle.com/techn ...
  • 2019年好好乾 ...
  • @ "TOC" 創建一個.c文件 對於圖形化的linux,需要右鍵桌面,在終端中打開,輸入 vi 文件名.c 就創建了一個.c文件,並且在vim模式下進行編輯。 如果用不慣vim也可以在創建了.c文件之後直接雙擊打開在gedit下編輯,就像window系統下的txt編輯一樣。 寫完代碼以後進行編譯 ...
  • 對於每一個Linux學習者來說,瞭解Linux文件系統的目錄結構,是學好Linux的至關重要的一步.,深入瞭解linux文件目錄結構的標準和每個目錄的詳細功能,對於我們用好linux系統只管重要,下麵我們就開始瞭解一下linux目錄結構的相關知識。 當在使用Linux的時候,如果您通過ls –l / ...
  • 概念: 硬鏈接(hard link): A是B的硬鏈接(A和B都是文件名),則A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統來說是完全平等的。如果刪除了其中一個,對另外一個沒有影響。每增加一個文 ...
  • 一、簡介 linux alias 是命令的一種別稱,輸入 alias 可以看到像下麵這樣的結果: alias vi="vim" 也即,輸入vi後,被自動定向到vim這個命令了。alias的作用就是,可以簡寫命令。 二、修改alias 若要添加自己的alias,格式如下 alias la="ls -a ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...