我们使用第三方开源工具并生成警告:
DeprecationWarning: The compiler package is deprecated and removed in Python 3.x.如何在不修改第三方代码的情况下抑制此警告?
我知道如何使用warnings.filter(),但我不能使用它:我从命令行调用py.test,因此在创建警告之前没有执行代码的单个源代码行。
在控制台脚本周围创建一个包装器不是一个选项。
发布于 2014-07-04 10:55:14
您可以添加一个调用usercustomize或sitecustomize的warnings.filter()模块。它将在解释器启动时加载。
请参阅定制模块
Python提供了两个钩子来定制它:
sitecustomize和usercustomize。要了解它是如何工作的,您需要首先找到您的用户站点-包目录的位置。启动Python并运行以下代码:导入站点>>> site.getusersitepackages() site.getusersitepackages 现在,您可以在该目录中创建一个名为usercustomize.py的文件,并将您想要的任何内容放入其中。它将影响Python的每次调用,除非使用-s选项启动它以禁用自动导入。sitecustomize以同样的方式工作,但通常是由全局站点包目录中的计算机管理员创建的,并且是在usercustomize之前导入的。有关详细信息,请参阅site模块的文档。
您可以影响Python在环境变量中的位置,因此您可以在这里将Python指向每个项目的usercustomize.py文件,前提是要考虑到将路径lib/python/site-packages添加到基中:
$ 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文件。
https://stackoverflow.com/questions/24572689
复制相似问题