python 首次登陆outlook 脚本_记Python“用户环境”的一次完美应用
在之前寫過一篇關(guān)于虛擬環(huán)境使用的文章,但是還沒有好好的介紹一下 Python 的用戶環(huán)境,原因是自己一直沒遇到要使用 用戶環(huán)境 的使用場景,所以就一直懶得寫。恰巧這兩天,自己遇到了一個使用用戶環(huán)境的體驗可以完爆虛擬環(huán)境的案例,就拿出來分享一下。
1. 我的使用背景
公司有數(shù)以萬計的服務(wù)器,為了對實現(xiàn)對訪問記錄進行集中管理以及出于安全考慮,每臺服務(wù)器都有訪問限制,必須使用公司的跳板機才能登陸。
每個公司的員工在跳板機上都有自己的用戶、 家目錄,對于很多需要 root 權(quán)限的操作,是高度受限制的。
比如我現(xiàn)在我要在跳板機上實現(xiàn)遠程登陸大批量的機器進行一些維護工作,當(dāng)然我這里使用的還是 Python 來實現(xiàn),這個 Python 腳本里有一些依賴庫(比如 之前介紹過的 paramiko 這個神器),在跳板機上中并沒有安裝。
做為普通用戶的你,是沒有權(quán)限安裝第三方包的。
問題就來了,我如何才能在跳板機中使用 paramiko 這個包呢?
2. 為何不使用虛擬環(huán)境?
既然不能對全局的 Python 環(huán)境進行更改,那我完全可以自己再創(chuàng)建一個環(huán)境,只要這個環(huán)境里事先裝好 paramiko 這個包不就好了。
因此,使用虛擬環(huán)境是一種解決方案,但它并不是一個完美的解決方案。
原因有以下幾點:
1、 創(chuàng)建虛擬環(huán)境的過程,步驟較多,比較復(fù)雜。這里的復(fù)雜是相對于我后面要使用的用戶環(huán)境而言。
2、 虛擬環(huán)境是包含一整個 Python 解釋器,存在大量與系統(tǒng)重復(fù)的包,size比較大,并不輕便。
3、 使用 console 模式調(diào)試的話,進入很不方便
就算你不使用 console 模式,你調(diào)用腳本的方式,也會很奇怪,你得這樣
如果你不想使用這樣,可以給這個腳本加個可執(zhí)行權(quán)限,并在腳本的第一行指定你的解釋器,省去了一點點麻煩,可即便如此,我仍然感覺很別扭。
你可能會問我:為什么不使用 virtualenv + virtualenvwrapper ,這樣可以使用 workon 進入虛擬環(huán)境。
原因是跳板機里的都是很古老的包,你看上面的 Python 還是 2.7.5 呢,所以你所說的那些工具通通沒有。
3. 用戶環(huán)境原理
這里要介紹的這種方案(用戶環(huán)境),可能很多人都沒有使用過,甚至沒有聽過,它算是一個冷門但是非常好用的功能。
操作之前 ,先簡單介紹一下它。
先提一個問題,Python 在查找導(dǎo)入包時,如果我們多個路徑都有這個包,那 Python 如何確定應(yīng)該從哪個路徑進行導(dǎo)入呢?
答案是, 搜索導(dǎo)入路徑是有優(yōu)先級的,你可以通過 sys.path 進行查看。
可以看到路徑 /home/wangbm/.local/lib/python2.7/site-packages 是優(yōu)先于 /usr/lib64/python2.7/site-packages 路徑的。
這就是 用戶環(huán)境 的原理,只要我們將包裝在自己家目錄下,就可以優(yōu)先于全局環(huán)境中進行查找。
使用起來,可以做到用戶無感知,跟使用原生的全局環(huán)境并沒有區(qū)別。
4. 具體操作方法
創(chuàng)建一個用戶環(huán)境,并安裝上你所需要的包,一條命令就能搞定,這可比虛擬環(huán)境簡單方便多了。
那么怎么操作呢?
只要你在使用 pip 安裝包時,加上 --user 參數(shù),pip 就會將其安裝在當(dāng)前用戶的 ~/.local/lib/python2.x/site-packages 下,而其他用戶的 python 則不會受影響。
$ pip install --user pkg這里要注意的是,不能使用這種方式,親測它會將包裝到全局環(huán)境下,具體原因我還沒有深究。
$ python -m pip install --user pkg為了讓你理解這個過程,我這里來舉個例子,并且驗證其是否可以做到用戶隔離。
有了這個思路,我就可以先在其他機器(前提自己必須擁有管理員權(quán)限 )上,創(chuàng)建一個用戶環(huán)境,并且安裝上 paramiko 這個包。
然后將這個用戶環(huán)境,壓縮拷貝至跳板機自己的家目錄下的 .local/lib 目錄下并解壓。
然后直接使用 python 進入 console 模式,現(xiàn)在已經(jīng)可以直接使用 paramiko 這個包了。
總結(jié)
以上是生活随笔為你收集整理的python 首次登陆outlook 脚本_记Python“用户环境”的一次完美应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 发送广播_从0系统学An
- 下一篇: 怎么用python表白_如何正确使用Py