python 创建目录_Python虚拟环境的搭建与使用
前言
在開發中很多時候不同的項目會需要用的不同版本的包,甚至是不同版本的Python,而使用虛擬環境就可以輕松解決問題。虛擬環境通過創建一個全新的Python開發環境,從而實現不同項目間的隔離。
虛擬環境的搭建
我們先安裝最基礎的包virtualenv:
pip install virtualenv然后安裝virtualenvwrapper,它是基于virtualenv的擴展包,擴展包括創建和刪除虛擬環境以及管理開發工作流的功能。
(1)如果是Windows OS則安裝virtualenvwrapper-win:
pip install virtualenvwrapper-win(2)如果是Linux OS則安裝virtualenvwrapper:
pip install virtualenvwrapperWindows OS安裝后需要設置環境變量才可使用,不過相比Linux下的設置已經顯得相當的快捷。我們只需要創建兩個環境變量:WORKON_HOME和PROJECT_HOME,路徑設定完成后就可以開始使用了。
Linux OS下安裝完后無法直接使用,如果你期待的輸入命令,你會得到一條令人沮喪的消息
日常報錯使用前我們還需要修改環境配置文件,在.bashrc或.profile文件中加入三行代碼:
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh參數說明:
- WORKON_HOME:表示存放虛擬環境的位置
- PROJECT_HOME:表示項目工作目錄的位置(使用mkproject命令時會用到)
- source:待載入Shell文件的路徑
source指向后綴為sh的腳本文件,在這里需要的是virtualenvwrapper.sh。同時要注意,不同系統中的路徑可能不一樣,find命令可以幫助我們找到需要的文件:
find / -name virtualenvwrapper.sh上述命令表示在根目錄下進行查找(即全盤查找)名為virtualenvwrapper.sh的文件,我查找的結果是/usr/bin/virtualenvwrapper.sh,所以我的source項就填寫這個。
find大法好在這里我用的是vi編輯器,鍵入命令vi ~/.bashrc就可以開始編輯了 。
編輯完后執行source ~/.bashrc重新加載配置文件即可正常使用命令。順帶一提,配置文件重新加載后會自動創建.virtualenvs文件夾,卻不會自動創建Devel文件夾,所以還是需要使用mkdir $HOME/Devel手動創建文件夾。
虛擬環境的使用方法
這里僅重點介紹virtualenvwrapper的常用命令。
mkvirtualenv
在WORKON_HOME目錄中創建一個新的虛擬環境。
mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME參數說明:
- -i:指定一個或多個包
- -a:指定一個項目目錄,用于將該虛擬環境綁定至一個現有項目
- -r:指定一個requirements文件,一般是由pip freeze所生成的,里面包括了需要用到的所有包
- virtualenv options:參數將直接傳遞給virtualenv,詳情參閱virtualenv官方文檔
例如mkvirtualenv env會創建一個名為env的虛擬環境并激活,之后pip安裝的所有包都僅僅存在于這個環境中。
處于“env”虛擬環境下的命令行帶有(env)的前綴mkproject
在PROJECTHOME目錄中創建項目目錄同時在WORKON_HOME目錄下創建同名虛擬環境。
mkproject [-f | --force] [-t template] [virtualenv_options] ENVNAME例如mkproject env會創建一個名為env的項目目錄,同時被創建的還有它的同名虛擬環境,當前虛擬環境會被切換到新的虛擬環境,當前工作目錄也會改變為新的項目目錄。
setvirtualenvproject
將現有的虛擬環境綁定到現有的項目。
setvirtualenvproject [virtualenv_path project_path]如果不指定參數,則默認為當前虛擬環境和當前目錄作為參數,單個項目可以綁定多個虛擬環境,從而可以輕松地在不同的Python版本或依賴之間切換以進行測試。
rmvirtualenv
刪除WORKON_HOME中的虛擬環境。
rmvirtualenv ENVNAME例如mkvirtualenv env將會刪除虛擬環境env。
workon
列出所有虛擬環境或更改當前工作中的虛擬環境。
workon [(-c|--cd)|(-n|--no-cd)] [environment_name|"."]- 命令workon會列出所有可用的虛擬環境
- 命令workon env將會切換當前虛擬環境到虛擬環境env
deactivate
退出當前虛擬環境。
deactivate還有許多其他的命令,詳情參閱virtualenvwrapper 4.8.3.dev4,以下僅列出一部分:
- mktmpenv:創建一個臨時的虛擬環境,停用后將會自動被清除
- lsvirtualenv:列出所有可用環境
- showvirtualenv:顯示單個虛擬環境的詳細信息
- cdvirtualenv:將當前工作目錄更改為虛擬環境的存放目錄,可導航到子目錄
- cdproject:將當前工作目錄更改為活動的虛擬環境所綁定的項目目錄的目錄
- wipeenv:刪除當前虛擬環境中所有已安裝的第三方軟件包
虛擬環境的使用實例
Python版本的的切換
我所使用的是Linux系統,自帶Python2.7,許多軟件包都會依賴老版本的Python,如果為了Python3.7覆蓋原來的版本,那么很多軟件可能會無法使用,這時可以通過參數-p來切換Python版本,-p后為指定的Python解釋器:
mkvirtualenv -p /usr/local/python3.7/bin/python3 py3env1這里我將Python3.7安裝在了/usr/local/python3.7/目錄下,根據不同的安裝方式路徑可能會有所不同。win7(64bit)下-p命令需要指定到python.exe 。
Python3.7的虛擬環境不同系統之間的項目轉移
在虛擬環境中進行開發,最后使用pip freeze > requirements.txt將依賴包的信息進行保存,可以看到目錄下會多出requirements.txt文件。將項目目錄轉移至目的系統后,重建并激活虛擬環境(Python版本需一致),在項目目錄下執行命令pip install -r requirements.txt即可獲得與之前開發時相同的依賴包和相同的環境。
一些疑問
其實我有個疑問,win版本和非win版本有什么區別,經過測試是都可以安裝成功的(Windows OS),但是在僅安裝virtualenvwrapper的情況下無法使用命令。在我卸載virtualenvwrapper-win的時候看到了些類似workon.bat的文件,推測win版本把命令用批處理實現了,相較而言Linux下的配置則要更為復雜。
卸載virtualenvwrapper-win時的部分回顯題圖Pixiv ID:70023635 | pip - pip 18.0 documentation | virtualenvwrapper 4.8.3.dev4 Virtualenv - virtualenv 16.0.0 documentation
總結
以上是生活随笔為你收集整理的python 创建目录_Python虚拟环境的搭建与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7 ifconfig命令找不
- 下一篇: python开发闹钟_「玩转树莓派」为女