研究导入时间
在输出的最后面,你会看到这些行:
在最后一行,579479表示 import pipenv 需要579479us。
在导入pipenv的同时,还导入了许多其他模块。从上面的示例中,您可以看到 pipenv 导入了pipenv.cli。子导入以2个空格缩进。
再看最后一行。507表示运行pipenv模块时只需要507us。579479-507=578972us用于子导入。
找出缓慢的部分
我们来从输出中找到缓慢子树。我选取了几行。
pkg_resources
如您所见,导入pkg_resources 很缓慢。
但令人惊讶的是,pkg_resources没有进行缩进;它不是pipenv的子导入。
这意味着pkg_resources是由pipenv脚本而不是模块导入的。
坏消息: 导入pkg_resources很慢。这是一个已知的问题,在不破坏向后兼容性的情况下很难修复。
好消息: 您可以避免导入pkg_resources!
在安装了wheel之后,pip会对它进行构建并从构建包进行安装。
从wheel (.whl)和源码包(.tar.gz)安装是不同的过程。
从wheel安装时,脚本中不使用pkg_resources:
IPython
看下面的部分.
pipenv导入dotenv, dotenv再导入 dotenv.ipython,它再导入IPython。
这就是为什么pipenv在我的环境中开始很慢; 我已经安装了IPython。
但是为什么要导入IPython呢?我阅读了dotenv源码,发现它是用于IPython扩展的。
当然,pipenv和许多dotenv用户并不使用IPython扩展。
我向dotenv提交了一个推送请求,建议dotenv根据需要导入IPython。
由于pipenv有自己的dotenv副本,所以我向pipenv提交了完全删除dotenv.ipython的推送请求。
结论
我可以将 pipenv–version 的时间从800ms减少到500ms。
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
n.net/topics/618317507)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!