首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不修改第三方代码的情况下抑制警告

在不修改第三方代码的情况下抑制警告
EN

Stack Overflow用户
提问于 2014-07-04 10:52:51
回答 1查看 1.7K关注 0票数 2

我们使用第三方开源工具并生成警告:

代码语言:javascript
复制
DeprecationWarning: The compiler package is deprecated and removed in Python 3.x.

如何在不修改第三方代码的情况下抑制此警告?

我知道如何使用warnings.filter(),但我不能使用它:我从命令行调用py.test,因此在创建警告之前没有执行代码的单个源代码行。

在控制台脚本周围创建一个包装器不是一个选项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-04 10:55:14

您可以添加一个调用usercustomizesitecustomizewarnings.filter()模块。它将在解释器启动时加载。

请参阅定制模块

Python提供了两个钩子来定制它:sitecustomizeusercustomize。要了解它是如何工作的,您需要首先找到您的用户站点-包目录的位置。启动Python并运行以下代码:导入站点>>> site.getusersitepackages() site.getusersitepackages 现在,您可以在该目录中创建一个名为usercustomize.py的文件,并将您想要的任何内容放入其中。它将影响Python的每次调用,除非使用-s选项启动它以禁用自动导入。 sitecustomize以同样的方式工作,但通常是由全局站点包目录中的计算机管理员创建的,并且是在usercustomize之前导入的。有关详细信息,请参阅site模块的文档。

您可以影响Python在环境变量中的位置,因此您可以在这里将Python指向每个项目的usercustomize.py文件,前提是要考虑到将路径lib/python/site-packages添加到基中:

代码语言:javascript
复制
$ python -m site --user-site
/Users/someuser/Library/Python/2.7/lib/python/site-packages
$ PYTHONUSERBASE=/foo/bar python -m site --user-site
/foo/bar/lib/python/site-packages

在上面的示例中,将PYTHONUSERBASE设置为/foo/bar,如果存在/foo/bar/lib/python/site-packages/usercustomize.py,Python将加载/foo/bar/lib/python/site-packages/usercustomize.py

在Python中,使用了基于Python2.6之前的site.py的自定义site.py文件;该版本省略了getusersitepackages()函数。如果文件lib/pythonX.X/no-global-site-packages.txt存在,则不会导入usercustomize模块。您必须在虚拟的env lib/python/site-packages目录中使用一个lib/python/site-packages文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24572689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档