pyhton如何导入包的每一个文件_pyforest 延迟导入所有流行的Python数据科学库,停止一遍又一遍地编写相同的导入...

ebba122d25237130bd2543b5bfeb1d2f.png

pyforest会延迟导入所有流行的Python数据科学库,这样当你需要它们时,它们总是在那里。如果你不使用一个库,它将不会被导入。当你完成你的脚本之后,你可以导出导入语句的Python代码。

Jupyter Notebook中的演示

e21f241bde0a37e01c72bf2ccde3542f.gif

Python Shell中的演示

a9a7e34eee7517030028e040a342b53d.png

使用pyforest

Pyforest会使用一行代码延迟导入所有流行的Python数据科学库:

d147c4009431624b46c86e15a20cc75e.png

如果你使用的是Jupyter或IPython,你甚至可以跳过这一行,因为pyforest会将自己添加到自动启动中。

当你完成你的脚本时,你可以通过以下命令导出所有的导入语句:

a30e1e4b7ecfe20649f6885dab04fc9e.png

哪些库是可用的?

  • 我们的目标是添加所有流行的Python数据科学库,它们应该占你日常导入的>99%。例如,导入pandas为pd, numpy为np, seaborn为sns, matplotlib.pyplot为plt,或者来自sklearn的OneHotEncoder等等。此外,还有一些辅助模块,如os、re、tqdm或 来自pathlib的Path。

  • 如果你在Python中键入lazy_imports(),你可以看到所有可用的延迟导入的一个总览。

  • 如果你错过了一个导入,你可以将其添加到pyforest导入中。

为了收集所有最重要的名字,我们需要你的帮助。请创建一个合并申请并添加我们仍然缺少的导入。

安装

你需要Python 3.6或更高版本,因为我们喜欢f-strings。

在终端中输入:

pip install pyforest

这样你就准备好了。

请注意,此命令还会将pyforest添加到你的IPython的默认启动设置中。

常见问题

  • “我需要始终在我的脚本顶部明确地写下我所使用的库。”

    ○ 当然,你可以使用active_imports()导出所有使用过的库的导入语句。

  • “这不会减慢我的Jupyter或Python的启动过程吗?”

      ○不会,因为这些库只有在实际使用时才会被导入。在使用它们之前,像pd这样的变量只是pyforest占位符。

  • “为什么我不能使用典型的IPython导入?”

      ○如果你要添加pyforest包含的所有库,你的启动时间可能要超过30秒。

  • “我没有,也不需要tensorflow。当我使用pyforest时会发生什么?”

      ○Tensorflow是包含在pyforest中的,但pyforest不会安装任何依赖项。你需要将库与pyforest分开安装。然后,如果这些库包含在pyforest导入中,那你可以通过pyforest访问它们。

  • "pyforest变量会干扰我自己的局部变量吗?”

      ○请确保你是在脚本的开头导入pyforest。这样你就永远是安全的。你可以像没有pyforest一样使用你的变量。最糟糕的情况是你覆盖了一个pyforest占位符,这样你就无法再使用该占位符了(不然呢)。

  • “延迟导入模块的自动完成功能如何?”

      ○它可以工作:)一旦你开启了自动完成,pyforest将导入模块并将可用的符号返回给你的自动完成程序。

  • “如何(暂时)停用IPython和Jupyter中的auto_import ?”

      ○进入~/.ipython/profile_default/startup目录,调整或删除pyforest_autoimport.py文件。你会在该文件中找到进一步的说明。

  • “如何(重新)激活pyforest auto_import?”

      ○在Jupyter、IPython或Python中执行以下Python命令:from pyforest.auto_import import setup; setup()。请注意auto_import只适用于Jupyter和IPython。

  • “为什么pandas_profiling也被导入到了演示中?”

     ○pyforest支持互补的、可选的导入。例如,pandas_profiling使用便捷函数df.profile_report修补了pd.DataFrame。因此,如果你安装了pandas_profiling, pyforest也会导入它。如果你没有安装pandas_profiling,pyforest将跳过可选导入。

  • “我不想把补充的导入语句复制到我的文件的顶部。”

      ○请注意,补充导入总是出现在import_statements列表的底部。你可以只复制上面的所有语句。或者,你可以禁用补充导入。

  • “如何禁用补充导入?”

      ○你可以取消pyforest导入文件底部的 *. _on_import__()语句的注释。

  • “为什么这个项目叫做pyforest?”

      ○Pandas存活在哪个生态系统中呢?

贡献

为了收集所有最重要的库名称,我们需要你的帮助。请创建一个合并申请并将我们仍然缺少的导入添加到pyforest导入中。你还可以在pyforest导入文件中找到指导原则。

作为包开发人员使用pyforest

pyforest可以帮助你最小化你的包的(初始)导入时间,从而改善用户体验。如果你希望你的包导入变得延迟,请按照下面重写你的导入:

使用

6719c8ccddd08756e49105beb7806137.png

替换

3c9da1ba919bfe65ae735b289217bab4.png

关于

pyforest是由Florian、Tobias和来自8080实验室的Guido共同开发的。我们的目标是提高Python数据科学家的工作效率。我们正在进行的其他项目是edaviz和bamboolib。

加入我们社区继续成长

如果你

  • 喜欢我们的项目或

  • 想成为一个更快速的Python数据科学家或

  • 想讨论Python数据科学生态系统的未来或

  • 只是对和志趣相投的人交往感兴趣

那么,请加入我们的聊天群组。

英文原文:https://github.com/8080labs/pyforest
译者:野生大熊猫
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值