/ 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库有时候确实是可以节省一些时间,不过也是有弊端存在的。

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

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

一行代码,能导入所有Python库!相关推荐

  1. 加一行代码,让你的Python的运算速度加快100倍

    一行代码让你的python运行速度提高100倍 python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. "一行代 ...

  2. ANSA二次开发 - 在ANSA中导入外部Python库

    文章目录 在ANSA中导入外部python库 NumPy SciPy OpenSSL H5py PIP 和venv包和环境管理系统 PIP venv CONDA包和环境管理系统 下载Conda Con ...

  3. python提升运行速度-一行代码让你的python运行速度提高100倍!Python真强!

    原标题:一行代码让你的python运行速度提高100倍!Python真强! Python用的好,猪也能飞起来. 今天,带大家学习如何让Python飞起来的方法,干货满满哦! python一直被病垢运行 ...

  4. ride导入自定义python库

    ride导入自定义python库 一.新建自定义库文件夹 在python安装目录下的 Lib\site-packages 目录下新建一个文件夹,文件夹名称就是库名,如 NewLibrary 二.定义方 ...

  5. 一行代码让你的python运行速度提高100倍

    python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. "一行代码让python的运行速度提高100倍" ...

  6. python项目软件代码_七套Python库快速提升您项目的代码可维护性,软件工程,代码库...

    保护项目未来可维护性的一种理想方式,在于利用外部库检查您的代码运行状况.以下是目前开发人员最喜爱的的代码梳理库,它们能够以强制方式执行一致性样式,并确保项目在成熟之后仍具备可接受的测试覆盖率. 当软件 ...

  7. 为了提高python代码运行速度和进行_一行代码让你的python运行速度提高100倍

    Python用的好,猪也能飞起来.今天,带大家学习如何让Python飞起来的方法,干货满满哦! python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器 ...

  8. python运行非常慢的解决-一行代码让你的python运行速度提高100倍

    python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. "一行代码让python的运行速度提高100倍" ...

  9. 一行代码就能使用PYTHON开发的小游戏

    导语: 哈喽~~没错这期又是游戏集!!! 都是童年玩的小游戏啦~一行代码就能进入使用Python开发的小游戏快乐玩耍了

最新文章

  1. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)
  2. python对话机器人软件_如何用Python为聊天机器人创建对话?
  3. 简单的使用Seajs
  4. hadoop集群崩溃恢复记录
  5. java 读取集合到流中_Java 10:将流收集到不可修改的集合中
  6. mysql慢查询开启语句分析_linux下开启mysql慢查询,分析查询语句
  7. go 生成hash_go基础之map-写在前面(一)
  8. 腾讯股价创新高:总裁刘炽平减持40万股 套现2.5亿港元
  9. 体验VMware Converter Client 6.2与Veeam BR 10迁移ESXi 6.0 vm到vCenter 6.7 u3
  10. WPF e.Systemkey的一个坑
  11. getOutputStream() has already been called for this response解释以及解决方法
  12. 获取Nist的美国官方标准时间的解决办法
  13. .NET资源站点汇总
  14. C语言谭浩强第三版例题及课后题汇总
  15. android开启wifi热点命令,Android便携式热点的开启状态检测和SSID的获取方法
  16. 全套汽车标志,好不容易找到的哦
  17. 机器人控制学习机器编程代码_带上机器人,让他们维护我们的代码!
  18. PS图片批量自动排版
  19. 阔密保密专家:数字货币将要来临 你的手机安全吗?
  20. 以太坊闪电网络实现原理

热门文章

  1. CentOS 手工编译、手动编译安装 MongoDB
  2. 问题-Delphi 中使用TStringList后,报out of memory 的解决方法
  3. (八)2005年我的第一次软件行业创业,烧掉30万、2年时间打水漂的惨痛教训
  4. Ora-00600 错误的代码含义及常用查询
  5. cocos2d-x 10.1版本 修复真机上白屏问题
  6. Activity not started, its current task has been brought to the front 。
  7. Markdown 调整图片位置与大小
  8. Linux 命令(34)—— vim 命令
  9. C/C++ volatile
  10. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合