懶人必備神器 !一個(gè)創(chuàng)意十足的 Python 命令行工具

當(dāng)聽到某些人說 xx 庫(kù)非常好用的時(shí)候,我們總是忍不住想要去親自試試。
有一些庫(kù),之所以好用,是對(duì)一些庫(kù)做了更高級(jí)的封閉,你裝了這個(gè)庫(kù),就會(huì)附帶裝了 n 多依賴庫(kù),就前一篇文章介紹的 streamlit 來說,依賴包就達(dá) 90 幾個(gè)之多?
比百度全家桶,還 tm 的全家桶啊…
也正是因?yàn)楹ε聲?huì)污染我的全局 Python 環(huán)境,我通常在試用新包的時(shí)候,都會(huì)使用 venv 創(chuàng)建虛擬環(huán)境,再去安裝,完事之后,再清理虛擬環(huán)境即可。
有沒有發(fā)現(xiàn),整個(gè)流程,其實(shí)還是挺麻煩的。
剛好昨天晚上,Github 上瞎逛,被我發(fā)現(xiàn)一個(gè)庫(kù),可以解決我一直以來的煩擾。
這個(gè)庫(kù)叫?trypackage,為試庫(kù)而生的庫(kù)。
當(dāng)你使用 try xx 命令時(shí),它會(huì)做哪些事呢?
安裝指定版本的 Python 解釋器
創(chuàng)建臨時(shí)的虛擬環(huán)境
激活虛擬環(huán)境
在虛擬環(huán)境中安裝你要試用的 Python 庫(kù)
直接進(jìn)入 Python Shell 模式
自動(dòng)將你要試用的庫(kù)導(dǎo)入進(jìn)來
# 1. 如何安裝
一條命令就可以安裝它
python3?-m?pip?install?trypackage
可以看到 trypackage 只依賴一個(gè) click 命令行庫(kù),還是很輕量的

其實(shí)不是這樣,try 會(huì)基于 virtualenv 創(chuàng)建虛擬環(huán)境,因此還要安裝 virtualenv 和 virtualenvwrapper
python3?-m?pip?install?virtualenv?virtualenvwrapper
# 2. 基本使用
使用 try requests,try 就會(huì)創(chuàng)建一個(gè)虛擬環(huán)境,然后在該虛擬環(huán)境中,安裝 requests ,安裝完成后,自動(dòng)進(jìn)入 Python Shell 的模式,并且自動(dòng)導(dǎo)入好你要試用的包

最貼心的是,試用完后,退出 Python Shell ,會(huì)自動(dòng)清理掉虛擬環(huán)境。
# 3. 更多用法
?指定 python 版本
我的環(huán)境沒有安裝 Python 3.8,通過 -p 參數(shù),可以指定 Python 3.8 ,安裝的過程太快,快得讓我有點(diǎn)懷疑這是不是真正的去安裝 Python 3.8 解釋器了。

也可以直接指定本地的 Python 版本,例如
try?requests?-p?/usr/bin/python3.7.1
?指定運(yùn)行模式
Try 直接的運(yùn)行模式非常多
1、當(dāng)你不指定時(shí),默認(rèn)使用 python shell 的模式
#?二者等價(jià)
try?requests
try?requests?--shell?python
2、使用 ipython 有兩種指定方式
#?二者等價(jià)
try?requests?--ipython
try?requests?--shell?ipython

3、使用 ptpython 或者 ?ptipython
這兩種模式都有代碼提示與自動(dòng)補(bǔ)全功能

4、使用 bpython 模式
Bpython 的代碼提示與補(bǔ)全比 ptpython 、ptipython ,更強(qiáng)一點(diǎn),其他的區(qū)別還沒試用到。

?在編輯器中打開
try?requests?--editor
?指定 Github 倉(cāng)庫(kù)包
#?語法示例
try?/?
#?安裝?Github?上的?Kenneth/requests?上的?master?版本
try?kennethreitz/requests??
?指定已經(jīng)存在的虛擬環(huán)境
try?requests?--virtualenv?~/.try/sandbox?
?持久化虛擬環(huán)境
默認(rèn)情況下,你退出后,會(huì)自動(dòng)清理掉虛擬環(huán)境,若有特殊需要,可指定 --keep 參數(shù)來持久化虛擬環(huán)境

?指定虛擬環(huán)境的目錄
默認(rèn)情況下,try 會(huì)將虛擬環(huán)境創(chuàng)建在一個(gè)默認(rèn)的目錄中,這個(gè)目錄比較深,不容易記住,你可以指定 --tmpdir 參數(shù),告訴 try 要將虛擬環(huán)境創(chuàng)建在這里,這個(gè)參數(shù)對(duì)于想要持久化虛擬環(huán)境的人會(huì)很有用。
try?requests?--tmpdir?~/.try
# 4. 配置文件
try 雖然提供命令行入?yún)⒌姆绞絹碜R(shí)別用戶選項(xiàng),但對(duì)于一些用戶來說,更希望能一次性修改 try 的默認(rèn)選項(xiàng),而不用每次都指定多個(gè)參數(shù)。
這時(shí)候,可以在你的 APP 目錄下新增一個(gè) config.ini 文件,內(nèi)容模板如下
[env]
virtualenv=~/.try/sandbox
python=3.8
shell=ipython
keep=false
always_use_editor=false
tmpdir=~/.try
所謂的 APP 目錄,在不同的系統(tǒng)中是不一樣的,可以使用如下代碼來查看
>>>?import?click
>>>?click.get_app_dir("try")
'/Users/iswbm/Library/Application?Support/try'
>>>
有了 config.ini,再次 try ,就會(huì)發(fā)現(xiàn)效果與配置一樣的預(yù)期一致。

# 5. 總結(jié)一下
Try 是一個(gè)非常實(shí)用的命令行工具,功能可以說完全擊中我的痛點(diǎn),能把這樣一個(gè)庫(kù)做出來,真的是創(chuàng)意十足,再一次印證 Python 是懶人第一語言 。。
往期推薦 2、為什么我們現(xiàn)在不再需要?dú)⒍拒浖耍?/a>
4、國(guó)家發(fā)布新的支付方式,微信支付寶時(shí)代結(jié)束了嗎?
點(diǎn)擊關(guān)注公眾號(hào),閱讀更多精彩內(nèi)容

