今天给大家介绍一个懒人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 pyforestdf = 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 pyforestprint(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 reimport 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库有时候确实是可以节省一些时间,不过也是有弊端存在的。

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

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

推荐阅读

误执行了rm -fr /*之后,除了跑路还能怎么办?!

程序员必备58个网站汇总

大幅提高生产力:你需要了解的十大Jupyter Lab插件

懒人必备!只需一行代码,就能导入所有的Python库相关推荐

  1. python实现英文新闻摘要自动提取_利用Python实现摘要自动提取,完美瘦身只需一行代码...

    原标题:利用Python实现摘要自动提取,完美瘦身只需一行代码 今天给大家推荐一个也可以用于关键字提取的算法TextRank,但主要实现的功能是快速从长篇新闻中抽取精准摘要. 前言介绍 TextRan ...

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

    作者 | 小F       责编 | 欧阳姝黎 大家好,我是小F- 今天给大家介绍一个懒人 Python 库-- Pyforest. 使用一行代码,就能导入所有的 Python 库(本地已经安装的). ...

  3. 【CVPR2020 Oral】只需一行代码就可提升迁移性能

    关注上方"深度学习技术前沿",选择"星标公众号", 精选文章,第一时间送达! 作者:Hassassin 知乎链接:https://zhuanlan.zhihu. ...

  4. 实现一个在JNI中调用Java对象的工具类,从此只需一行代码

    前言 我们知道在jni中执行一个java函数需要调用几行代码才行,如 jclass objClass = (*env).GetObjectClass(obj); jmethodID methodID ...

  5. 【Python】Modin,只需一行代码加速你的Pandas

    本文翻译自:Shrivarsheni的博客 Modin是一个Python第三方库,可以通过并行来处理大数据集.它的语法和pandas非常相似,因其出色的性能,能弥补Pandas在处理大数据上的缺陷. ...

  6. [JavaScript]只需一行代码,轻松搞定快捷留言功能

    快捷留言功能,就是您现在看到在右侧浮动的那个小玩意,通过它可以直接提交留言并推荐,您想在博客里加上这个功能吗? 别急,方法非常简单,还是先听我说说它的来历吧... 最开始,快捷留言这个功能要追溯到发表 ...

  7. [JavaScript]只需一行代码,轻松搞定快捷留言-V2升级版

    前天熬了大半宿发了一篇[一行代码轻松搞定快捷留言功能],同时发布了V1.0beta版的快捷留言功能和源代码,之所以是beta版,就是当时感觉虽然基本功能有了,但是还不够完善,特性也不一定合理,今天不知 ...

  8. 只需一行代码实现增删查改,微软已经让我们很简单。谈AccessDataSource的使用。...

    这是一个很简单的内容.日常我们总腻烦做增删查改这样的重复性的劳动,如果你的项目不是太大,如果你的团队很小,或许就是你一个人,那么就完全可以参考以下这样简单的方式.微软已经给我们做了.我们只要写一行代码 ...

  9. 模型秒变API只需一行代码,支持TensorFlow等框架

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转自机器之心 参与:一鸣.杜伟 还在为机器学习模型打包成 API 发愁?这个工具能让你一行代码直接打包. 专注于机器学习应用的人们知道,从训练好的模 ...

最新文章

  1. 透过现象看本质,图解支持向量机
  2. ES不香吗,为啥还要ClickHouse?
  3. 每天一个JavaScript实例-获取元素当前高度
  4. exchange2007 灾难恢复E00.log(虚拟环境实验)
  5. 《程序出错后,程序员给测试人员的20条高频回复》
  6. Apache Maven 使用 profile 和 filtering 实现多种环境下的资源配置管理
  7. npm依赖文件package.json中^和~的含义
  8. java 教程 嵌入式,嵌入式狗的 JAVA 入门笔记·1
  9. rabbitmq接收不到消息_分布式消息队列:如何保证消息的可靠性传输
  10. 17.20. 连续中值 堆
  11. 谈:典型三种近场通信的特点以及未来趋势
  12. PackageManager使用详解
  13. 8个免费图片素材网,赶紧收藏起来
  14. WISP、Client+AP和WDS 区别
  15. 官宣:两校合并,落户省会!
  16. Effective Java 2.0_中英文对照_Item 7
  17. java tea collection_Javaの集合学习
  18. 如何用css实现彩带样式,CSS3 彩色丝带
  19. 计算机硬件设备介绍 ppt,计算机硬件设备的认识课件.ppt
  20. Spring--官方文档部分翻译(第一章)

热门文章

  1. 浅析Java中对象的创建与对象的数据类型转换
  2. php解析url并得到url中的参数及获取url参数的四种方式
  3. Go操作mysql实现增删改查及连接池
  4. ELK学习9_ELK数据流传输过程_问题总结2
  5. 支付宝 网页授权 获取用户信息
  6. Gin使用mongo进行增删改查/聚合/数据转换
  7. 中国地质大学c语言程序设计答案,2016年中国地质大学(北京)信息工程学院C语言程序设计(同等学力加试)考研复试题库...
  8. 计算机安全原理与实践_《计算机图形学原理及实践》学习笔记之第三章
  9. wavecn 2.0.0.5 正式版_谷歌Android Studio 3.5正式版发布:稳步推进Project Marble计划
  10. ERROR: Could not find a version that satisfies the requirement requests (from v ersions: none)