<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      搭建多個互不干擾的python開發環境 virtualenv virtualenvwrapper 及pyenv 大匯總

      我們有的時候會發現,一個電腦上有多個項目,一個依賴 Django 2.2,另一個比較舊的項目又要用 Django 1.11,這時候怎么辦呢?

      我們需要一個依賴包管理的工具來處理不同的環境。

      如果不想搭建這個環境,只想用某一個版本的 Django 也可以,但是推薦學習此內容!

      4.1 虛擬環境依賴安裝

      開發會用 virtualenv 來管理多個開發環境

      Linux/MacOS 下

      virtualenvwrapper 使得virtualenv變得更好用,所以我們一起安裝了

      1
      2
      # 安裝:
      (sudo) pip install virtualenv virtualenvwrapper

      修改~/.bash_profile或其它環境變量相關文件(如 .bashrc 或用 ZSH 之后的 .zshrc),添加以下語句

      1
      2
      3
      export WORKON_HOME=$HOME/.virtualenvs
      export PROJECT_HOME=$HOME/workspace
      source /usr/local/bin/virtualenvwrapper.sh

      修改后使之立即生效(也可以重啟終端使之生效):

      1
      source ~/.bash_profile

       

      Windows 下:

      1
      pip install virtualenv virtualenvwrapper-win

      【可選】Windows下默認虛擬環境是放在用戶名下面的Envs中的,與桌面,我的文檔,下載等文件夾在一塊的。更改方法:計算機,屬性,高級系統設置,環境變量,添加WORKON_HOME,如圖(windows 10 環境變量設置截圖):

      workon_home.png

      4.2 虛擬環境使用方法:

      mkvirtualenv zqxt:創建運行環境zqxt

      workon zqxt: 工作在 zqxt 環境 或 從其它環境切換到 zqxt 環境

      deactivate: 退出終端環境

       

      其它的:

      rmvirtualenv ENV:刪除運行環境ENV

      mkproject mic:創建mic項目和運行環境mic

      mktmpenv:創建臨時運行環境

      lsvirtualenv: 列出可用的運行環境

      lssitepackages: 列出當前環境安裝了的包

      創建的環境是獨立的,互不干擾,無需sudo權限即可使用 pip 來進行包的管理。

       

      1.創建虛擬環境
      mkvirtualenv env-name
      mkvirtualenv -p python3.4 env-name # 指定python的版本號
      mkvirtualenv env-name --system-site-packages # 可以使用虛擬環境的外部的模塊
      2.進入虛擬環境
      workon env-name
      3.離開虛擬環境
      deactivate
      4.刪除虛擬環境
      rmvirtualenv env-name
      5.列出虛擬環境
      lsvirtualenv
      6.進入到虛擬環境所在的目錄
      cdvirtualenv

       

      =======================================================

      前言

      我覺得如果使用 python 開發的話,還是在 unix/linux 的環境下吧,shell 工具的效率比 windows 高得多,盡管 windows 下也有 cmder 這種神器,而且現在 windows store 也很好的開發出了 linux 子系統,但是瑕疵非常多,unix/linux 才是完美的環境。本文用到的是 archlinux ,另外 debian/ubuntu、centos 也完全適用。mac 用戶也可以參考,不過 homebrew 也提供了非常方便的安裝方法,但是建議使用文本做法。

      背景

      python 版本比較多,2 和 3 相差非常大,很多項目需要跑在同一臺服務器上,我們可以選擇直接運行,也可以選擇使用 docker。如果用 docker 那就不需要隔離環境了,如果要直接運行在服務器上,那就必須有隔離環境。比如有的項目使用 python 3.5,有的項目使用 python 3.7,此時我們可以借助 pyenv 幫助我們完美的隔離環境,讓多個版本的 python 沒有任何沖突,完美共存。

      任務

      使用 pyenv 和 pyenv-virtualenv ,在 linux 下完美隔離 python 各個版本

      第 1 章:使用環境

      請注意,接下來所有的操作都在 archlinux 下進行,本文不涉及 windows

      清單

      1. git
      2. zsh 或者 bash
      3. pyenv
      4. pyenv-virtualenv

      1、安裝 git

      在各大 linux 的發行版下安裝 git 都非常簡單,此處只展示部分示例

      archlinux

      sudo pacman -S git

      debian/ubuntu

      sudo apt-get install git

      centos

      sudo yum install git

      2、開啟終端

      本文使用 zsh

      3、安裝 pyenv

      說明:本文的所有安裝都嚴格遵守官方文檔,與官方文檔完全保持一致。

      git 地址:https://github.com/pyenv/pyenv

      在你的終端中執行如下命令,安全無毒,請放心食用:

      首先把項目克隆下來,放在家目錄下的隱藏文件夾中:.pyenv

      git clone https://github.com/pyenv/pyenv.git ~/.pyenv

      然后配置環境變量

      如果你使用 bash,就依次執行如下命令:

      echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc

      echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

      echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc

      如果你使用 zsh,就依次執行如下命令:

      echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc

      echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

      echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc

      echo 命令的含義是:將引號中內容寫入某文件中
      請注意,以上的三條 echo 命令的最后一條長長的命令,請你保證它引號中的內容處于 ~/.bashrc 或者 ~/.zshrc 的最底部。
      因為在 pyenv 初始化期間會操作 path 環境變量,導致不可預測的行為。
      查看文件的底部內容,可以使用 tail 命令,用法:tail ~/.bashrc 或者 tail ~/.zshrc,編輯文件可以使用 vim 或者 vscode

      最后,在使用 pyenv 之前,重新初始化 shell 環境,執行如下命令

      exec $SHELL

      不執行該命令也是完全可以的,你可以關閉當前的終端窗口,重新啟動一個就可以了。

      此時,你已經完成了 pyenv 的安裝了,你使用可以它的全部命令了,但是我建議你先別急著用,一口氣裝完 pyenv 的一個插件,那就是 pyenv-virtualenv

      4、安裝 pyenv-virtualenv

      git 地址:https://github.com/pyenv/pyenv-virtualenv

      把插件克隆在剛才已經安裝完畢的 pyenv 的 plugins 文件夾中

      git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

      然后配置環境變量

      如果你使用 bash,就執行如下命令:

      echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

      如果你使用 zsh,就執行如下命令:

      echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc

      最后,在使用 pyenv 之前,重新初始化 shell 環境,執行如下命令

      exec $SHELL

      不執行該命令也是完全可以的,你可以關閉當前的終端窗口,重新啟動一個就可以了。

      到此,我們的所有重要安裝已經全部完成了,可以開始體驗了。

      第 2 章:使用 pyenv

      此處僅僅展示 pyenv 和 virtualenv 的日常用法

      檢查安裝是否正確

      檢查 pyenv 的版本

      pyenv version

      查看 pyenv 已經托管了哪些 python 版本

      pyenv versions

      如果你看到了正常的版本信息,就說明可以了,如果看到了類似于 command not found 之類的,就說明安裝失敗了。

      安裝 3.6.6 版本的 python

      pyenv install 3.6.6

      這里有個問題,某些情況下會安裝失敗,報錯就告訴你 Build failed

      這個時候,pyenv 已經在它的 github wiki 里面為我們準備了一篇錯誤應對方案,原文地址 https://github.com/pyenv/pyenv/wiki

      大意如下,只需要執行對應的命令即可:

      archlinux 用戶

      sudo pacman -S base-devel openssl zlib

      mac 用戶

      brew install openssl readline sqlite3 xz zlib

      Ubuntu/Debian/Mint 用戶

      sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev

      CentOS/Fedora <= 21 用戶,請你保證已經安裝了 xz 工具

      sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel

      Fedora >= 22 用戶,請你保證已經安裝了 xz 工具

      sudo dnf install -y gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel

      openSUSE 用戶

      zypper install gcc automake openssl-devel ncurses-devel readline-devel zlib-devel tk-devel

      Solus 用戶

      sudo eopkg it -c system.devel

      sudo eopkg install git gcc make zlib-devel bzip2-devel readline-devel sqlite3-devel openssl-devel tk-devel

      Linuxbrew 用戶

      brew install bzip2 openssl readline sqlite xz

      安裝完這些補充的工具之后,再次執行:

      pyenv install 3.6.6

      就可以成功了,你可以不斷的使用

      pyenv versions

      來查看被 pyenv 托管的 python 版本

      而且你想裝什么版本就裝什么版本,想裝幾個裝幾個,都是完美共存,完美隔離,你可以在終端里輸入

      pyenv install

      然后按下 tab 鍵,就可以看到所有可選的安裝版本了

      使用剛才安裝的 python 3.6.6

      首先我們需要明確一個概念,pyenv 和 pyenv-virtualenv 他們是如何協作的,你可以這么認為:

      pyenv 托管 python 版本,virtualenv 使用 python 版本

      好了,之前已經裝好了版本,那么現在就來使用吧

      第 1 步:創建虛擬環境

      首先需要創建一個虛擬環境,執行命令:

      pyenv virtualenv 3.6.6 my-env

      它的格式就是這樣固定的,最后一個是你自己想要的環境的名字,可以隨便取。稍等片刻,你將會看到:

      Looking in links: /tmp/tmp0eywgc7v
      Requirement already satisfied: setuptools in /home/joit/.pyenv/versions/3.6.6/envs/my-env/lib/python3.6/site-packages (39.0.1)
      Requirement already satisfied: pip in /home/joit/.pyenv/versions/3.6.6/envs/my-env/lib/python3.6/site-packages (10.0.1)

      類似于這樣的回顯信息,說明環境已經創建成功了,它還告訴了你,該虛擬環境的絕對路徑,如果你進去看了,你就會發現,所謂的虛擬環境,就是把 python 裝在 pyenv 的安裝目錄的某個文件夾中,以供它自己調用。

      第 2 步:激活虛擬環境

      在任意目錄下,執行命令:

      pyenv activate my-env

      你會發現,在你的終端里面,多了一個類似于 (my-env) 這樣的一個東西,這時候你如果執行:

      python --version

      那就是 python 3.6.6 了

      如果你執行:

      pip --version

      它會告訴你 pip 包安裝的絕對路徑,也是 pyenv 安裝目錄下的某個文件夾

      如果你關掉了終端,那么下次啟動你又得重新激活一次了,你可以使用如下命令:

      首先 cd 到某一個目錄,比如 ~/test

      cd ~/test

      然后在該目錄下執行:

      pyenv local my-env

      你會發現已經被激活了,那么 local 命令和剛才有啥不同呢。如果你執行:

      ls -al

      你就會發現,在 ~/test 目錄下,有個隱藏文件 .python-version,你可以看到這個文件里面,只寫了一句話 my-env

      這樣你只要進入 ~/test 目錄,就會自動激活虛擬環境

      在虛擬環境下,你如果直接執行

      python

      就會進入到 python 的交互環境

      如果你寫了一個文件,名字叫做 app.py ,里面的內容只有一句代碼:print(1)

      然后執行:

      python app.py

      這時候,系統就會調用虛擬環境中的 python 解釋器來執行這些代碼了

      第 3 章:更新 pyenv

      由于我們是 git 克隆的,所以更新非常簡單

      cd ~/.pyenv 或者 cd $(pyenv root)
      git pull

      第 4 章:卸載 pyenv

      由于 pyenv 把一切都放在 ~/.pyenv 下了,所以卸載很方便,兩個步驟就行了

      首先你需要刪除環境變量

      然后你需要執行:

      rm -rf ~/.pyenv 或者 rm -rf $(pyenv root)


      ========================================================
      pyenv是做什么的

      pyenv是用來更方便的管理/切換python版本的.
      github上通過homebrew安裝介紹的非常簡單.主要是對相關知識點不熟悉造成很多問題.
      首先必須明白的是:

      Pyenv只會管理通過Pyenv安裝的Python版本,你自己在Python官網上下載的直接安裝的Pyenv并不能被管理!!!同樣除了系統自帶的python包外,其他直接安裝的python包是識別不出來的,即使使用的brew安裝的也識別不出來.

      通過homebrew安裝:

      brew install pyenv
      

      但是github提示了一句話

      After installation, you'll need to add eval "$(pyenv init -)" to your profile (as stated in the caveats displayed by Homebrew — to display them again, usebrew info pyenv). You only need to add that to your profile once.

      終端提示:

      Caveats
      To use Homebrew's directories rather than ~/.pyenv add to your profile:
      export PYENV_ROOT=/usr/local/var/pyenv

      To enable shims and autocompletion add to your profile:
      if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

      這個profile是哪個文件呢?

      profile指的是.bash_profile, mac下的隱藏文件

      編輯.bash_profile文件

      在終端中輸入如下命令,進入當前用戶的Home目錄

      $ cd ~ 
      

      輸入如下命令,打開.bash_profile文件

      open .bash_profile
      

      如不存在,則輸入如下命令,創建文件

      touch .bash_profile
      

      編輯文件

      open -e .bash_profile
      

      在彈出的.bash_profile文件中新增

      export PYENV_ROOT=/usr/local/var/pyenv
      if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
      

      command + s 保存文件

      在終端中輸入如下命令,刷新之前配置的.bash_profile文件.

      source .bash_profile
      
      pyenv的使用
      • 查看已經安裝的python版本
      $ pyenv versions
      
      • 查看當前使用的python版本
      $ pyenv version
      
      • 安裝一個python版本如3.5.2
      $ pyenv install 3.5.2
      
      • 卸載一個python版本如3.5.2
      $ pyenv uninstall  3.5.2
      
      • 設置全局python版本如3.5.2
      $ pyenv global 3.5.2
      //很多人不推薦這么做,說是mac操作系統的文件也會調用原生的2.7的python版本
      //這種說法感覺有點:恐懼來自未知的感覺.持保留意見
      
      • 設置目錄級python版本如3.5.2
      $ pyenv local 3.5.2
      
      • 為當前shell會話設置python版本如3.5.2
      $ pyenv shell 3.5.2
      

      如果在指定的文件目錄下限制特定的python版本需要以下操作:

      $ cd + 文件路徑
      
      $ pyenv local 3.5.2 
      
      • 如何查看當前設定版本
       $ pyenv versions
       * system (set by /usr/local/var/pyenv/version)
          2.7.8
          2.7.10
        #當前設定版本前會有星號標識
      
      • 如何取消當前設定版本
      $ pyenv local --unset 
        #其他兩種命令同樣參數
      

      使用上述命令指定python版本后,該文件被刪除后,即使在原路徑重新同名文件,python版本仍舊是系統設定的global 版本.
      pyenv 命令列表

      2.Pycharm 如何切換 Pyenv 管理的安裝包

      當你使用pyenv切換了python版本時.Pycharm不會自動切換到對應的python. 需要自己手動的添加對應版本的絕對路徑到Pycharm.
      如圖.在Add Loacl 中添加pyenv管理的絕對路徑.


       
      add-local.png
      2.1 . pyenv 管理的安裝包路徑

      目前有兩種情況.

        1. 直接安裝的pyenv,即pyenv在默認的目錄:
      
              pyenv管理的python版本路徑:  ~/.pyenv/versions/
      
        2. 通過 Homebrew 安裝的 pyenv:
      
              pyenv管理的python版本路徑:  /usr/local/var/pyenv/versions
              
        3. 如果上述兩種方法都找不到:
            
              直接通過 pyenv 隨意安裝一個版本(2.7.9).終端會有如下提示:
      
              Downloading Python-2.7.9.tar.xz...
              -> https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
              Installing Python-2.7.9...
              patching file ./Lib/site.py
              patching file ./Lib/ssl.py
              Installed Python-2.7.9 to /usr/local/var/pyenv/versions/2.7.9
          
              你找的路徑已經出來了--> /usr/local/var/pyenv/versions/
      
      
      

      [pyenv 官方 錯誤查看地址][1-c]
      [1-c]:https://github.com/yyuu/pyenv/wiki/Common-build-problems

      3. pyenv 管理的版本安裝包區別簡介

      當你在終端輸入:

      $ pyenv install --list
      

      你會看到如下版本列表

      
      
      Available versions:
        2.1.3
        ...
        2.7.12
        3.0.1
        3.5-dev 
        anaconda-1.4.0
        ...
        anaconda2-4.1.0
        anaconda3-4.1.0
        ironpython-dev
        ironpython-2.7.5
        jython-dev
       ...
        jython-2.7.1b3
        miniconda-2.2.2
        ...
        miniconda3-4.0.5
        pypy-c-jit-latest
        ...
        pypy3.3-5.2-alpha1
        stackless-dev
        ...
        stackless-3.4.1
      

      解釋如下:
      1. 純數字的(如2.1.3, 2.7.12)是官方發布版本,
      2.anaconda 也是一個python版本,只是自帶了很多用于科學計算的第三方包和管理這些第三方包的管理工具(類似于pip)
      3.miniconda- 是anaconda的迷你版(僅僅包涵對應的python版本和第三方包管理工具,第三方包如果使用需要自己下載)
      3.IronPython 是一種在 NET 和 Mono 上實現的 Python 語言.使用.net開發
      4.JPython是完全用JPython實現的python,它支持用java擴展,
      5.和CPythonPyPy的區別是使用了JIT(即時編譯)技術

      anaconda簡介

      具體參看他人簡介
      Conda的包管理(anaconda 帶的管理工具)
      這個工具有點特別可以下載其他版本的anaconda版本.自成一個工具(conda將conda、python等都視為package)
      Conda的包管理就比較好理解了,這部分功能與pip類似。

      // 安裝scipy
      conda install scipy
      // conda會從從遠程搜索scipy的相關信息和依賴項目,對于python 3.4,conda會同時安裝numpy和mkl(運算加速的庫)
      
      // 查看已經安裝的packages
      conda list
      # 最新版的conda是從site-packages文件夾中搜索已經安裝的包,不依賴于pip,因此可以顯示出通過各種方式安裝的包
      

      conda的一些常用操作如下

      # 查看當前環境下已安裝的包
      conda list
      
      // 查看某個指定環境的已安裝包
      conda list -n python34
      
      // 查找package信息
      conda search numpy
      
      // 安裝package
      conda install -n python34 numpy
      // 如果不用-n指定環境名稱,則被安裝在當前活躍環境
      // 也可以通過-c指定通過某個channel安裝
      
      // 更新package
      conda update -n python34 numpy
      
      // 刪除package
      conda remove -n python34 numpy
      

      conda將conda、python等都視為package,因此,完全可以使用conda來管理conda和python的版本,例如

      // 更新conda,保持conda最新
      conda update conda
      
      // 更新anaconda
      conda update anaconda
      
      // 更新python
      conda update python
      // 假設當前環境是python 3.4, conda會將python升級為3.4.x系列的當前最新版本
      

      更換國內源問題參看上面鏈接詳情


      安裝

      $ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
      

      后面的~/.pyenv是你想安裝在硬盤的地址

      配置

      如果使用的是bash

      $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
      $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
      $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
      

      如果使用的是zsh

      $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
      $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
      $ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
      

      之后,重新加載shell

      $ exec $SHELL -l
      

      使用

      查看現在使用的python版本

      $ pyenv version
      

      查看可供pyenv使用的python版本

      $ pyenv versions
      

      安裝python版本

      $ pyenv install <python版本>
      

      安裝的版本會在~/.pyenv/versions目錄下。

      對于比較大的版本文件,例如anaconda,可以先到官網下載,然后將文件放在~/.pyenv/cache目錄下,再執行安裝命令時,pyenv不會重復下載。

      此外,可以用--list參數查看所以可以安裝的版本

      $ pyenv install --list
      

      卸載將install改為uninstall就行

      $ pyenv uninstall <python版本>
      

      設置全局python版本,一般不建議改變全局設置

      $ pyenv global <python版本>
      

      設置局部python版本

      $ pyenv local <python版本>
      

      設置之后可以在目錄內外分別試下which pythonpython --version看看效果, 如果沒變化的話可以$ python rehash之后再試試

      更新pyenv

      $ cd ~/.pyenv
      $ git pull
       
       
       

      posted @ 2020-04-22 22:04  熱愛技術的小牛  閱讀(634)  評論(0)    收藏  舉報
      熱愛技術的小牛
      主站蜘蛛池模板: 国产一区二区不卡精品视频| 欧美饥渴熟妇高潮喷水| 色综合中文综合网| 中文字幕亚洲精品人妻| 精品一区二区成人码动漫| 中文字幕V亚洲日本在线电影| 开鲁县| 成人av专区精品无码国产| 91亚洲精品一区二区三区| 妖精视频yjsp毛片永久| 陆丰市| 么公的好大好硬好深好爽视频| 日日碰狠狠添天天爽五月婷| 精品91在线| 精品国产午夜福利在线观看 | 久久人搡人人玩人妻精品| 九九热免费在线视频观看| 成人午夜视频在线| 午夜福利在线观看6080| 狠狠躁日日躁夜夜躁欧美老妇| 东北女人毛多水多牲交视频| 久久久久国产精品熟女影院| 91精品国产蜜臀在线观看| 国产福利在线观看免费第一福利| 果冻传媒18禁免费视频 | 国产精品国产三级国快看| 亚洲av伊人久久综合性色| 国产亚洲精品一区二区无| 国语精品一区二区三区| 麻豆国产传媒精品视频| 国产老熟女国语免费视频| 99久久99久久精品免费看蜜桃 | 思思久99久女女精品| 突泉县| 成人无码午夜在线观看| 国产自拍在线一区二区三区| 亚洲第一极品精品无码久久| 成人午夜精品无码区久久| 91亚洲国产成人久久蜜臀| 久9视频这里只有精品试看| 亚洲午夜爱爱香蕉片|