专栏首页进击的Coder只需一行代码,就能导入所有的 Python 库?

只需一行代码,就能导入所有的 Python 库?

今天给大家介绍一个懒人 Python 库 —— Pyforest。

使用一行代码,就能导入所有的 Python 库(本地已经安装的)。

GitHub地址:https://github.com/8080labs/pyforest

/ 01 / 介绍

Python 因为有着成千上万个功能强大的开源库,备受大家的欢迎。

目前,通过 PyPl 可以导入超过 23.5 万个 Python 库,数量庞大。

在大家平常的实践当中,一般都是需要导入多个库或者框架来执行任务。

而且每当新建一个程序文件时,都需要根据自己的需求导入相关的库。

如果是相同类型的任务,比如想做一个数据可视化的小项目,可能会一直使用到某个库。

如此,反复编写同一条 import 语句,就算是复制粘贴,也会感觉到麻烦,这时 Pyforest 库就可以上场了。

Pyforest 是一个开源的 Python 库,可以自动导入代码中使用到的 Python 库。

在进行数据可视化的时候,一般都需要导入多个库,比如 pandas、numpy、matplotlib 等等。

使用了 Pyforest,每个程序文件中就不需要导入相同的 Python 库,而且也不必使用确切的导入语句。

比如下面这行代码,就可以省略掉。

from sklearn.ensemble import RandomForestClassifier

在你使用 import 语句导入 Pyforest 库后,你就可以直接使用所有的 Python 库。

import pyforest

df = pd.read_csv('test.csv')
print(df)

你使用的任何库都不需要使用 import 语句导入,Pyforest 会为你自动导入。

只有在代码中调用库或创建库的对象后,才会导入库。如果一个库没有被使用或调用,Pyforest 将不会导入它。

/ 02 / 使用

安装,使用以下命令安装 Pyforest。

pip install pyforest -i https://pypi.tuna.tsinghua.edu.cn/simple

安装成功后,使用 import 语句导入它。

现在,你可以直接使用相关的 Python 库,无需编写 import 导入。

先以 jupiter notebook 为例,我们没有导入 pandas、seaborn 和 matplotlib 库,但是我们可以通过导入 Pyforest 库直接使用它们。

读取数据,这个是国内棉花产量排行前三的省份,新疆全国第一(数据来源:国家统计局)。

那么 Pyforest 可以导入所有库吗?

目前这个包包含了大部分流行的 Python 库,比如

pandas as pd
NumPy as np
matplotlob.pyplot as plt
seaborn as sns 

除了这些库之外,它还提供了一些辅助的 Python 库,如 os、tqdm、re 等。

如果你想查看库列表,可以使用 dir(pyforest) 进行查看,内置的是 68 个库。

import pyforest

print(len(dir(pyforest)))
for i in dir(pyforest):
    print(i)

-------------------------
68
GradientBoostingClassifier
GradientBoostingRegressor
LazyImport
OneHotEncoder
Path
RandomForestClassifier
RandomForestRegressor
SparkContext
TSNE
TfidfVectorizer
...

如果没有的话,可以进行自定义添加,在主目录中的文件写入 import 语句。

示例如下。

vim ~/.pyforest/user_imports.py

添加语句,此处便能在代码中使用 requests 这个库。

# 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

这回我们在 PyCharm 中来实验一下。

发现 PyCharm 的自动补全的功能失效了,看来这个库还是比较适合 jupyter notebook (自动补全代码还可以使用)。

除了上面这个地方可以自定义添加,还可以在库的 _import.py 文件中添加。

此处以 Pyechars 为例,缩写为 chart。

可视化代码如下。

新疆棉花产量年年上升,其它省份年年下降...

最后 Pyforest 还提供了一些函数来了解库的使用情况。

# 返回已导入并且正在使用的库列表
print(pyforest.active_imports())
--------------------------------
['import pandas as pd', 'import requests as req', 'import pyg2plot']


# 返回pyforest中所有Python库的列表
print(pyforest.lazy_imports())
--------------------------------
['import glob', 'import numpy as np', 'import matplotlib.pyplot as plt'...]

只有代码中有使用到的库,程序才会 import 进去,否则不会导入的哦!

/ 03 / 总结

好了,到此本期的分享就结束了。

使用到的代码及文件已上传,回复「pyforest」即可获取。

使用 Pyforest 库有时候确实是可以节省一些时间,不过也是有弊端存在的。

比如调试的时候(大型项目),可能会很痛苦,不知道是哪里来的库。

所以建议大家,在一些独立的脚本程序中使用,效果应该还是不错的。

End

本文分享自微信公众号 - 进击的Coder(FightingCoder)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 只需一行代码,就能导入所有的Python库?

    GitHub地址:https://github.com/8080labs/pyforest

    咋咋
  • 只需一行代码,就能导入所有的Python库?

    GitHub地址:https://github.com/8080labs/pyforest

    1480
  • 一行代码结果叹为观止,能做到这么极致的也只有python了

    Python 这门语言非常的有趣,不仅可以做高大上的人工智能、大数据、机器学习。还可以用来做 Web、爬虫。还有其它很多的应用。今天我就给大家展示下一行 Pyt...

    猫咪编程
  • Python3学习笔记 | 二十二、Python的模块-模块的宏伟蓝图

    模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。从实际角度来看,模块往往对应于Python程序文件(或是用外部语言如C、Java或C#编写而成...

    TeamsSix
  • Robot Framework(15)- 扩展关键字

    https://www.cnblogs.com/poloyy/category/1770899.html

    小菠萝测试笔记
  • Python3 import 与 from...import

    在 python 中,用 import 或者 from…import 来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使...

    chaibubble
  • 5种神奇的方法,让你的Python代码加速起飞

    我们都知道就速度而言,Python是比Java或C慢得多的语言。Python是动态类型化的语言,这意味着它的变量类型未预定义。动态类型是一把双刃剑,它成就了Py...

    HuangWeiAI
  • 精心总结 Python『八宗罪』,邀你来吐槽

    这个话题已经在 Hacker News 上引发了热烈的讨论(评论 400+),感兴趣的读者可以去围观或参与一下。

    昱良
  • 如何编写向前兼容的 Python 代码

    对于网络应用来说,目前最安全的做法是仍然坚持使用 Python 2.x,即使是新的项目。一个简单的原因是现在 Python 3 还不支持足够多的库,而将已有的库...

    岂不美哉Frost
  • 打破Excel与Python的隔阂,xlwings最佳实践

    前言能生成 pandas 代码的数据浏览工具工具安装加载数据直觉理解运行机制进一步完善充分利用 Excel 功能最后

    咋咋
  • Python3之模块、包

    注意: 1.当导入模块时,最先在当前路径下查找,没找到才会到系统中查找,所以py文件不要与模块名重名 2.当导入模块时,实际上是先把模块程序执行一遍,所...

    py3study
  • Android与Python爱之初体验

    看到这个标题,大家可能会认为就是Android运行python脚本,或者用python写app,这些用QPython和P4A就可以实现了。我在想既然C可以调用P...

    陈宇明
  • 如何写出符合 Python 审美的代码风格?

    每个人都有自己的代码风格,随着写的行数增加,自己对于代码的审美也会变的不一样,这就像是一个逐渐蜕变的过程,每过一段时间回头再去看看自己之前写的代码就会生出一种「...

    编程文青李狗蛋
  • Power BI数据回写SQL Server(1)没有中间商赚差价

    我们在【重磅来袭】在Power BI 中使用Python(4)——PQ数据导出&写回SQL 讲过如何在Power BI中调用Python实现powerquery...

    陈学谦
  • Python 太糟糕了?开发者总结了 8 大原因

    Python 3 与 Python 2 不完全兼容。作者以 Perl 语言和创造了世界上早期个人电脑的 Commodore 为例,分析了缺乏向后兼容性和分离版本...

    一墨编程学习
  • 用了几年 Python,但你可能连这个都没学透

    在 Python 中用的最多的可能就是 import 了,几乎我们写的每个 Python 脚本都是需要的,但这个 import 其实也有些讲究的,比如用不好很可...

    崔庆才
  • Python 这么火,如何快速掌握?

    在过去的几年里 Python 一直在快速增长,尤其是在 2017 年跃居为排名第一的编程语言。在 Stack Ovehrflow 上,关于 Python 相关问...

    程序猿DD
  • python包package和模块module导入深入详解

    作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机...

    小草AI
  • 关于Python导入模块,你可能没学透?!

    作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机...

    昱良

扫码关注云+社区

领取腾讯云代金券