偷懶必備!只需一行代碼,就能導(dǎo)入所有的 Python 庫(kù)?

今天給大家介紹一個(gè)懶人 Python 庫(kù):Pyforest
使用一行代碼,就能導(dǎo)入所有的 Python 庫(kù)(本地已經(jīng)安裝的)
項(xiàng)目地址:https://github.com/8080labs/pyforest
/ 01 / 介紹
Python 因?yàn)橛兄汕先f(wàn)個(gè)功能強(qiáng)大的開源庫(kù),備受大家的歡迎
目前,通過(guò) PyPl 可以導(dǎo)入超過(guò) 23.5 萬(wàn)個(gè) Python 庫(kù),數(shù)量龐大
在大家平常的實(shí)踐當(dāng)中,一般都是需要導(dǎo)入多個(gè)庫(kù)或者框架來(lái)執(zhí)行任務(wù)
而且每當(dāng)新建一個(gè)程序文件時(shí),都需要根據(jù)自己的需求導(dǎo)入相關(guān)的庫(kù)
如果是相同類型的任務(wù),比如想做一個(gè)數(shù)據(jù)可視化的小項(xiàng)目,可能會(huì)一直使用到某個(gè)庫(kù)
如此,反復(fù)編寫同一條 import 語(yǔ)句,就算是復(fù)制粘貼,也會(huì)感覺(jué)到麻煩,這時(shí) Pyforest 庫(kù)就可以上場(chǎng)了
Pyforest 是一個(gè)開源的 Python 庫(kù),可以自動(dòng)導(dǎo)入代碼中使用到的 Python 庫(kù)
在進(jìn)行數(shù)據(jù)可視化的時(shí)候,一般都需要導(dǎo)入多個(gè)庫(kù),比如 pandas、numpy、matplotlib 等等
使用了 Pyforest,每個(gè)程序文件中就不需要導(dǎo)入相同的 Python 庫(kù),而且也不必使用確切的導(dǎo)入語(yǔ)句
比如下面這行代碼,就可以省略掉
from sklearn.ensemble import RandomForestClassifier
在你使用 import 語(yǔ)句導(dǎo)入Pyforest 庫(kù)后,你就可以直接使用所有的 Python 庫(kù)
import pyforest
df = pd.read_csv('test.csv')
print(df)
你使用的任何庫(kù)都不需要使用 import 語(yǔ)句導(dǎo)入,Pyforest 會(huì)為你自動(dòng)導(dǎo)入。
只有在代碼中調(diào)用庫(kù)或創(chuàng)建庫(kù)的對(duì)象后,才會(huì)導(dǎo)入庫(kù)。如果一個(gè)庫(kù)沒(méi)有被使用或調(diào)用,Pyforest 將不會(huì)導(dǎo)入它。
/ 02 / 使用
安裝,使用以下命令安裝 Pyforest
pip install pyforest -i https://pypi.tuna.tsinghua.edu.cn/simple
安裝成功后,使用 import 語(yǔ)句導(dǎo)入它
現(xiàn)在,你可以直接使用相關(guān)的 Python 庫(kù),無(wú)需編寫 import 導(dǎo)入
先以 jupiter notebook 為例,我們沒(méi)有導(dǎo)入 pandas、seaborn 和 matplotlib 庫(kù),但是我們可以通過(guò)導(dǎo)入 Pyforest 庫(kù)直接使用它們

讀取數(shù)據(jù),這個(gè)是國(guó)內(nèi)棉花產(chǎn)量排行前三的省份,新疆全國(guó)第一(數(shù)據(jù)來(lái)源:國(guó)家統(tǒng)計(jì)局)

那么 Pyforest 可以導(dǎo)入所有庫(kù)嗎?
目前這個(gè)包包含了大部分流行的 Python 庫(kù),比如
pandas as pd
NumPy as np
matplotlob.pyplot as plt
seaborn as sns
除了這些庫(kù)之外,它還提供了一些輔助的 Python 庫(kù),如 os、tqdm、re 等
如果你想查看庫(kù)列表,可以使用 dir(pyforest) 進(jìn)行查看,內(nèi)置的是 68 個(gè)庫(kù)
import pyforest
print(len(dir(pyforest)))
for i in dir(pyforest):
print(i)
-------------------------
68
GradientBoostingClassifier
GradientBoostingRegressor
LazyImport
OneHotEncoder
Path
RandomForestClassifier
RandomForestRegressor
SparkContext
TSNE
TfidfVectorizer
...
如果沒(méi)有的話,可以進(jìn)行自定義添加,在主目錄中的文件寫入 import 語(yǔ)句
示例如下
vim ~/.pyforest/user_imports.py
添加語(yǔ)句,此處便能在代碼中使用 requests 這個(gè)庫(kù)
# Add your imports here, line by line
# e.g
# import pandas as pd
# from pathlib import Path
# import re
import requests as req
~
~
"~/.pyforest/user_imports.py" 7L, 129C
這回我們?cè)?PyCharm 中來(lái)實(shí)驗(yàn)一下。

發(fā)現(xiàn) PyCharm 的自動(dòng)補(bǔ)全的功能失效了,看來(lái)這個(gè)庫(kù)還是比較適合 jupyter notebook(自動(dòng)補(bǔ)全代碼還可以使用)
除了上面這個(gè)地方可以自定義添加,還可以在庫(kù)的 _import.py 文件中添加
此處以 Pyechars 為例,縮寫為 chart

可視化代碼如下

新疆棉花產(chǎn)量年年上升,其它省份年年下降...
最后 Pyforest 還提供了一些函數(shù)來(lái)了解庫(kù)的使用情況
# 返回已導(dǎo)入并且正在使用的庫(kù)列表
print(pyforest.active_imports())
--------------------------------
['import pandas as pd', 'import requests as req', 'import pyg2plot']
# 返回pyforest中所有Python庫(kù)的列表
print(pyforest.lazy_imports())
--------------------------------
['import glob', 'import numpy as np', 'import matplotlib.pyplot as plt'...]
只有代碼中有使用到的庫(kù),程序才會(huì) import 進(jìn)去,否則不會(huì)導(dǎo)入的哦!
/ 03 / 總結(jié)
好了,到此本期的分享就結(jié)束了
使用 Pyforest 庫(kù)有時(shí)候確實(shí)是可以節(jié)省一些時(shí)間,不過(guò)也是有弊端存在的。比如調(diào)試的時(shí)候(大型項(xiàng)目),可能會(huì)很痛苦,不知道是哪里來(lái)的庫(kù)
所以建議大家,在一些獨(dú)立的腳本程序中使用,效果應(yīng)該還是不錯(cuò)的
萬(wàn)水千山總是情,點(diǎn)個(gè) ?? 行不行
推薦閱讀:
入門: 最全的零基礎(chǔ)學(xué)Python的問(wèn)題 | 零基礎(chǔ)學(xué)了8個(gè)月的Python | 實(shí)戰(zhàn)項(xiàng)目 |學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評(píng),電影《后來(lái)的我們》 | 38年NBA最佳球員分析 | 從萬(wàn)眾期待到口碑撲街!唐探3令人失望 | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個(gè)海量小姐姐素描圖 |
趣味:彈球游戲 | 九宮格 | 漂亮的花 | 兩百行Python《天天酷跑》游戲!
AI: 會(huì)做詩(shī)的機(jī)器人 | 給圖片上色 | 預(yù)測(cè)收入 | 碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
年度爆款文案
2).學(xué)Python真香!我用100行代碼做了個(gè)網(wǎng)站,幫人PS旅行圖片,賺個(gè)雞腿吃
3).首播過(guò)億,火爆全網(wǎng),我分析了《乘風(fēng)破浪的姐姐》,發(fā)現(xiàn)了這些秘密
9).發(fā)現(xiàn)一個(gè)舔狗福利!這個(gè)Python爬蟲神器太爽了,自動(dòng)下載妹子圖片
點(diǎn)閱讀原文,領(lǐng)全套AI資料!


