社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

Python编程时光 • 5 年前 • 625 次点击  
点击上方“Python编程时光”,选择“加为星标
第一时间关注Python技术干货!


最近的"平安经"可谓是引起了不小的风波啊。

作为一个正儿八经的程序员,最害怕的就是自己的代码上线出现各种各样的 BUG。

为此,明哥今天分享一个 Python 的黑魔法,教你如何在你执行任意 Python 代码前,让 Python 解释器自动念上一段平安经,保佑代码不出 BUG 。

本技巧已经收录于最新版的 《Python黑魔法指南》v2.0,可以前往 Github 阅读:https://github.com/iswbm/magic-python

做好心理准备了嘛?

明哥要开始作妖了,噢不,是开始念经了。

感谢佛祖保佑,Everything is ok,No bugs in the code.

你一定很想知道这是如何实现的吧?

如果你对 Linux 比较熟悉,就会知道,当你在使用 SSH 远程登陆 Linux 服务器的时候?会读取 .bash_profile 文件加载一些环境变量。

.bash_profile 你可以视其为一个 shell 脚本,可以在这里写一些 shell 代码达到你的定制化需求。

而在 Python 中,也有类似 .bash_profile 的文件,这个文件一般情况下是不存在的。

我们需要新建一个用户环境目录,这个目录比较长,不需要你死记硬背,使用 site 模块的方法就可以获取,然后使用 mkdir -p 命令创建它。

在这个目录下,新建一个 usercustomize.py 文件,注意名字必须是这个,换成其他的可就识别不到啦。

这个 usercustomize.py 的内容如下(明哥注:佛祖只保佑几个 Python 的主要应用方向,毕竟咱是 Python 攻城狮嘛...)

这个文件我放在了我的 github 上,你可以前往获取

一切都完成后,无论你是使用 python xxx.py 执行脚本

还是使用 python 进入 Python Shell ,都会先念一下平安经保平安。


继续探索

除此之外,可还有其他方法呢?

当然是有,只不过相对来说,会麻烦一点了。

先来看一下效果。

先查看下 ~/Library/Python/3.9/lib/python/site-packages 目录下并没有 usercustomize.py 文件。

但是在执行 python 进入 Python Shell 模式后,还是会打印了平安经。

这又是如何做到的?真见鬼了呀。

方法其实也很简单,只要做两件事,就能实现这样的效果:

第一件事,在任意你喜欢的目录下,新建 一个Python 脚本,名字也随意,比如我叫 startup.py,内容还是和上面一样

第二件事,设置一个环境变量 PYTHONSTARTUP,指向你的脚本路径

$ export PYTHONSTARTUP=/Users/MING/startup.py

这样就可以了。

但是这种方法只适用于 Python Shell ,只不适合 Python 执行脚本的方法。

如果要在脚本中实现这种效果,我目前想到最粗糙我笨拙的方法了 -- 手动加载执行

本文分享了两个非常冷门 Python 的黑魔法技巧,可以实现在你执行任意的 Python 代码前,自动召唤佛祖念上一段平安经。

希望本篇分享能对你有用,更多关于 Python Shell 的玩法,我已经整理在了我的 Github 上(https://github.com/iswbm/magic-python),可以前往查看。





推荐阅读


太赞了!《Python 黑魔法指南》终于面世了

《Python黑魔法指南》全新版本 v2.0 上线发布

用Python写出这样的进度条,刷新了我对进度条的认知

用Python画漂亮的专业插图 ?So easy!

Python 3.10 明年发布,看看都有哪些 PEP ?

一张图整理了 Python 所有内置异常

40条提升编程技能的小妙招

Python 代码覆盖率工具 - Coverage



长按下图  ➡   关注博主

(按左边关注 Python, 按右边关注 Goalng


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/72104
 
625 次点击