本文目錄一覽:
- 1、怎麼用python進入virtualvenv環境
- 2、python環境變數的配置
- 3、python虛擬環境—virtual environment
- 4、如何為python項目創建虛擬環境
- 5、Linux python默認使用conda
- 6、如何配置java和python環境
怎麼用python進入virtualvenv環境
1、安裝virtualenv
在安裝virtualenv之前,我們需要安裝至少有一個版本的python;因為virtualenv是python的一個第三方模塊,必須基於python環境才能安裝;
如果你的python環境有pip,那麼直接使用命令:pip install virtualenv 安裝即可;否則需要下載源碼,然後使用命令:python install setup.py 來安裝
安裝之後需要新建virtualenv的獨立環境,具體可以查看其幫助命令:virtualenv -h
常用的參數有:
-p:指定一個版本python環境;通常當你的系統中安裝了多個python版本時會用到;默認情況下virtualenv會優先選取它的宿主python環境,即它安裝在那個python版本下就會默認選擇哪個版本作為默認python隔離環境。
–no-site-packages:不使用系統環境的python安裝包,即隔離包中不能使用真實python環境的安裝包;當前版本這個選項是默認的。
–system-site-packages:與上面相反,使隔離環境能訪問系統環境的python安裝包
–distribute:copy一個python環境的分支,默認會安裝setup、pip、wheel等基礎模塊
2、激活
安裝完了之後就可以創建一個隔離環境了,使用命令:
[html] view plain copy
virtualenv envname ##創建一個新的隔離環境
cd envname
Scripts\activate ##激活並切換到virtualenv環境
3、使用
創建並激活virtualenv環境後我們就可以正常的方式來使用和安裝python安裝包及模塊了。也可以直接切換到需要執行的python文件目錄,使用python xxx.py來保證在隔離環境下執行python文件。
即:我們在需要使用virtualenv環境之前,只要先激活然後使用以往同樣的方式來執行python操作、運行python文件即可
4、集成到開發環境
當前在PyCharm中是支持virtualenv環境集成的,其它的IDE暫時未研究,集成也是很方便的:
1、新建一個項目
2、點擊解釋器欄的設置icon
3、選擇virtualenv
4、可以新建也可以選擇一個已有的virtualenv環境
配置到之後我們也可以在該項目中測試下,選擇一個區別與系統環境的安裝模塊,查看下其版本是否正確,我這裡因為有2個django版本,所以使用django模塊來測試的,得到的是正確的結果。
python環境變數的配置
首先滑鼠右鍵此電腦,選擇屬性;然後點擊高級系統設置,點擊環境變數;接著點擊path進行編輯,在path中添加上python的安裝路徑;最後點擊確定。
工具/原料:
windows7系統
python3.9版
DELL G3電腦。
1、右鍵點擊電腦,打開屬性。進去之後,點擊高級系統設置。
2、點擊環境變數。
3、點擊path,進行編輯。
4、在path中添加上python的安裝路徑,這裡是F:\Install\python3.7\,需要注意的是如果要是有pip安裝第三方庫的話,需要添加F:\Install\python3.7\Scripts\到變數中。
5、確定進行保存環境變數配置之後,打開命令提示符,輸入python,按回車鍵看到python版本,代表環境變數配置成功。
python虛擬環境—virtual environment
操作系統:ubuntu16.04
舉個例子,tensorflow(tf)是一個十分流行的python機器學習庫,你現在手裡有兩個tf項目,其中項目A需要使用 python2.7 + f1.2 ,項目B需要使用 python2.7 + tf1.6 .這兩個項目你得同時進行,怎麼辦?
愚蠢的辦法是需要運行項目A時,將python2.7中的tf1.6卸載掉,安裝tf1.2;需要運行項目B時,將python2.7中的tf1.2卸載掉,安裝tf1.6。如果是單個模塊還好,但是tf的不同版本又依賴於python中的其他已安裝模塊,而且tf1.2和tf1.6對依賴模塊有不同的版本要求,那麼轉換一次得卸載安裝好幾個模塊,是不是很爆炸?
課題組裡幾個同門共用一台伺服器,每個人擁有一個系統賬戶,其中只有一個人擁有root許可權,裡面每個人都需要使用python跑程序,而且每個人對python版本以及python模塊的版本都有不同需求,很多人又沒有root許可權,如何解決?
使用python的虛擬環境可以輕鬆解決上面的問題!
python虛擬環境是一個隔離/獨立的python開發環境,和系統python環境可以完全隔離,互不相關,相當於多了一個python開發環境。而且你在python虛擬環境中的開發過程和使用系統python一模一樣,你可以在你創建的python虛擬環境中使用pip工具安裝任何你需要的模塊,該模塊和系統python環境完全不相關。虛擬環境的這個特點就能解決上面的問題了。
python有兩個模塊可以用於創建和管理python虛擬環境:
其中,venv模塊在python3.3以上的版本可以使用,而virtualenv在python2.7+和python3.3+都可以使用。
默認的系統python中是沒有安裝以上兩個工具的,需要使用以下命令安裝:
安裝好之後,就可以使用這兩個工具安裝python虛擬環境了。
我的系統python版本有python2.7和python3.5,虛擬環境的版本只能是系統中已有的python版本。使用virtualenv安裝虛擬環境的命令如下:
什麼參數都不指定的話,它會使用 /usr/bin/python 路徑下的python解釋器版本,即python2.7。因此會默認安裝python2.7虛擬環境, /home/yan/env 表示虛擬環境的安裝路徑。
如果你要安裝的是python3.5的虛擬環境,可以這樣:
一般情況下,上面兩條命令就夠了,這樣安裝得到的python虛擬環境和系統python環境是完全隔離的。
更多的命令選項可以在命令行中直接輸入 virtualenv 命令獲取。
venv只有python3可以使用,因此只能創建python3的虛擬環境,創建命令如下:
其中, python3 -m venv 是死命令,最後的安裝路徑自己指定。
注意: 以上兩種安裝方式在安裝虛擬環境的同時也自動安裝了pip工具。
安裝好虛擬環境之後,每次使用該虛擬環境前需要使用 source 命令 激活 它。假設前面我在 /home/yan/env3/ 目錄下安裝了python3.5的虛擬環境,現在我使用以下命令激活它:
激活之後,在命令行提示符前面會有 (env3) 的提示,表示當前你處的python虛擬環境,比如我電腦的情況:
現在你可以在激活環境中干任何事情,比如使用pip命令在你新的python虛擬環境中安裝模塊:
或者執行python腳本。
使用完該虛擬環境之後,你需要在命令行輸入 deactivate 命令來 退出 該虛擬環境:
之後就回到了正常的系統python環境中。
由於你創建該虛擬環境的目的是為了跑某個項目的程序,現在該項目做完了,不需要該虛擬環境了,你可以把該虛擬環境直接刪除,如何刪?
直接將創建虛擬環境時生成的文件夾刪掉,就這麼簡單。比如我要把我剛才創建的env3虛擬環境刪除:
在刪除虛擬環境前記得一定得先退出該虛擬環境。
python虛擬環境的好處是:每個虛擬環境之間,以及虛擬環境和系統環境之間是完全隔離的,不同虛擬環境中,你可以安裝不同版本的模塊,就彷彿你可以同時擁有N多個不同的python開發環境。
唯一麻煩的一點是:每次進入某個虛擬環境之前,都要使用 source 命令激活。每次使用完,都要使用 deactivate 命令退出。
如何為python項目創建虛擬環境
我們在開始一個python項目,而不是幾行簡單的代碼時,我們傾向於開始使用第三方的dependencies.當項目越來越大時,我們需要考慮如何有效的管理這些第三方庫。當安裝第三方庫時,我們肯定是想安裝在虛擬環境中。幫助我們保持我們實際系統環境的乾淨,避免打亂整個系統python環境。
我們可以使用pip把第三方庫安裝到python項目中。一個項目中往往要安裝多個,鑒於安裝的第三方庫的各種版本,可能會導致一些兼容和運行的問題。
當我們在python項目中使用pip install ,我們是安裝到全局python下的,將會根據現有的python版本安裝第三方包。
我們可以通過以下命令來查找python的安裝目錄:
如果我們使用pip3 install ,將會安裝到python3安裝目錄的單獨的目錄下。我們可以用以下命令來覆蓋pip3這個命令:
但是這仍然解決不了我們在全局python下安裝第三方庫的問題,將會出現下列的問題:
為了避免以上的問題,python開發者使用虛擬環境。這個虛擬環境把安裝的這些第三方庫在一個隔離的環境中(目錄內)保存。
確保你的系統上已經安裝python
然後看一下pip是否也能正常調用
我們需要一個工具來創建python的虛擬環境,venv。它是封裝在python3.3+版本以上的python中的。
如果我們使用python2,我們需要手動安裝一個工具。這是為數不多的一個我們需要全局安裝的第三方庫。
注意:我們將會在文章中討論很多venv和python3,操作系統環境不同,可能會導致某些命令的些許不同,某些工具的工作原理也些許不同。
如果你的系統上沒有安裝pip:
我們首先要為項目創建一個文件夾,並進入這個文件夾:
然後我們再創建虛擬環境:
這將會創建一個名為virtualenv的目錄,這個目錄將會包含bin、lib、include文件夾,還有一個環境配置文件。
所有的文件都是為了確保,所有的代碼都運行在當前的虛擬環境下。這會幫我們把工作環境和操作系統環境隔離開來,避免我們之前提到的問題。
為了使用這個虛擬環境,我們需要激活它。激活以後,還會更改我們的命令提示符標誌。這個標誌也是為了表明虛擬環境已經激活,python的代碼都是在這個環境下執行。
在虛擬環境下,無法訪問使用全局的第三方庫,在虛擬環境內安裝的庫也無法在外部使用。
在虛擬環境中,只有pip和setuptools是默認安裝的。
激活虛擬環境後,變數path也會相應地發生改變,以達到虛擬環境的目的。
當我們完成工作,想切換回操作系統的全局環境,我們需要使用deactivate退出虛擬環境。
我們配置了虛擬環境並激活以後,我們不想在分享項目時,連同使用pip install命令安裝的第三方庫也一起分享。我們想去除我們的虛擬環境文件夾,但仍然可以在其他的電腦或系統上重新運行我們的工作。
為實現這個目的,我們可以在項目根目錄下創建一個requirement文件。假設我們在虛擬環境下安裝flask,安裝完成後我們使用pip freeze命令。它將會列出我們已經安裝過的庫名和版本號。
我們可以將這個列表寫到requirement文件中,上傳到git保存,或以任何形式跟他人分享。
這個命令也可以更新這個requirements.txt文件,所以在每次安裝一個新的第三方庫時,我們都習慣性的運行一下這個命令,來更新我們的安裝列表。
然後,如果任何人想在他們的電腦上運行我們的項目,他們只需要做:
所有的一切都如在我們電腦上運行的一樣。
安裝pipenv
pipenv基本上是pip的一個替代工具。它引入了兩個文件,pipfile用來替換requirements.txt,Pipfile lock(which enables deterministic builds,確定第三方庫的子依賴庫版本的更新的解決方案)
pipenv在機理上是運行pip和virtualenv,但使用一個命令來簡化操作。
安裝第三方庫,如flask,或numpy
也可以從Version Control system比如git來安裝第三方庫
需要注意上面的-e參數可以使安裝editable,目前對於pipenv來說是必須的。
如果你需要使用pytest來測試項目,但在上線後不需要這個庫,你可以指定這個庫僅僅作用於開發模式 –dev.
–dev將會把第三庫放到pipfile的一個單獨的地方【dev-packages】。
如果你現在完成了開發,本地運行正常,你想鎖定你的開發環境,並轉至線上。使用如下命令確保開發環境:
這個代碼將會創建或更新你的環境,你無需手動更改編輯。我們也應該一直使用自動生成的文件。
lock以後,在production環境,你需要安裝最新的成功的運行環境。
這個命令是告訴pipenv,安裝時忽略pipfile,用pipfile.lock里的列表。pipenv將會創建一模一樣的環境,包括子依賴庫。
現在,另一個人想要對代碼做些更改,這種情況下,他得到代碼,包括pipfile,運行如下命令
這個命令將會安裝開發所需的所有的第三方庫,包括普通的install以及–dev安裝的。
舉例,現在你開發用到的一個第三庫有了版本升級,因為你不需要一個特定的版本,所以你在install的時候沒有指定版本號。當你運行pipenv install時,最新版本的第三方庫會安裝到你的開發環境內。
然後你對代碼做了一些更改,結果如預期一樣。然後你再重複上面的步驟lock你的環境。並更新至Production.
將會使用默認的editor打開第三方庫的代碼。
Linux python默認使用conda
本篇介紹如何讓linux在不激活任何環境時,調用python命令直接使用到conda的某個子環境。
首先說明本篇文章的工作原由,以及踩過的坑。
在之前的工作中,一般進行python開發都會使用conda進行包管理,以達到隔離多個環境的目的。例如:
問題來了,在一些場景中,外部程序需要調用伺服器上的api,又無法做出 conda activate 的命令,命令是直接使用 python xxx.py ,這時候只能使用linux自帶的python命令,或者conda的base環境的python命令。所以需要將環境搭建在linux的python或者conda的base。搭建過程中,遇到的問題來自兩個方面:
解決方法:將linux默認的python做軟鏈接,鏈接到conda的子環境。
創建環境: conda create -n child_env python=3.6
切換環境: conda activate child_env
安裝pytorch: conda install pytorch torchvision cudatoolkit=10.0
安裝tensorflow: conda install tensorflow-gpu
安裝其他包: conda install xxx,xxx,…
先將老的鏈接備份: mv /usr/bin/python /usr/bin/python22
再做鏈接: ln -s /root/anaconda3/envs/child_env/bin/python3 /usr/bin/python
第一個路徑需要改成自己的anaconda路徑,child_env改成自己的環境名,第二個路徑不用改。
先關掉conda環境: conda deactivate
再運行: python xxx.py
用這個方法,雖然解決了直接調用python命令的問題。但是引入了新的問題。
更換默認python版本
如何配置java和python環境
Java 環境配置
1. 最簡單的方法
眾所周知,eclipse是需要java運行環境的,其實只需要java虛擬機
jre就行了,也就是說在你的系統中如果已經安裝了jre(一般在C:\Program Files
(x86)\Java\jre6),其實只需要copy這個jre文件夾到eclipse下就能順利運行eclipse了,但是這樣做之後eclipse會提示你什麼環境變數沒有設置,會影響啥啥的,這個我都沒有管,以後需要再在意也行。
2. 標準的方法
首先從這裡下載jdk (SE是指standard version)
jdk下載地址
配置環境變數
在「系統變數」區域,設置3項屬性:JavaHome、PATH、CLASSPATH
JavaHome指明JDK的安裝路徑 “C:\Program Files\Java\jdk1.7.0_45”
PATH 是java和javac的目錄 “.\;%JavaHome%\bin;\%JavaHome%\jre\bin”
classpath 是載入類的路徑 “.\;%JavaHome%\lib\tools.jar;%JavaHome%\jre\lib\rt.jar”
Python插件配置
(1) 安裝python插件
打開eclipse中help下的install new software,輸入下面網址
選中Pydev安裝,安裝後eclipse會提醒重啟
(2) 配置python解釋器
先從官網下載python的安裝包
python安裝包
安裝好python後
如果要在windows命令行下使用python,在系統高級設置中環境變數path中添加python的路徑「C:\Python27」即可。這一步是很必要的,比如以後要安裝python的第三方的庫的時候需要在windows下運行setup.py要用到。
驗證安裝好的方法:
在command中運行:
python -version 應該能成功顯示python的版本。
在eclipse中
打開windows-preferences下面配置python解釋器的環境,配置好後如圖。
然後就可以新建python的工程啦。
(3) python 第三方插件的安裝 以及在Eclipse中的識別問題
以安裝requests這個python的第三方插件為例
首先從github網站下載request python安裝包
點擊後面的zip包下載解壓到本地任意一個地方,python的安裝很簡單,正常的安裝包中都會有個setup.py這個文件,在terminal下運行:
python setup.py install
這裡感嘆一句,安裝時它會自動尋找python的安裝路徑,無論是在C盤還是D盤(不過這也可能是因為我提前在系統變數path中配置了python的路徑)。然後將需要的文件複製在E:\Python27\Lib\site-packages下。
接下來再次進入eclipse中,重新restore一下preferences下的解釋器的路徑(估計這一步也是沒有必要的),然後重啟eclipse,這樣python interpreter就能正常識別你新導入的module了。
原創文章,作者:YTWY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145937.html