gpt4 book ai didi

python - python 3 的准备工作 : issue warnings?

转载 作者:行者123 更新时间:2023-11-30 23:32:49 25 4
gpt4 key购买 nike

我对我们组织内部使用的相当大的 Python 包负有主要责任。我正在准备Python3的包;对于我可以控制自己的代码,这是完全可行的 - 但是有许多脚本“在野外”,如果/当组织默认解释器被猛拉到 3.x 时,它们将会中断。典型情况如下:

一些我无法控制的随机脚本:

#!/usr/bin/env python    #   By manipulating the environment I will ...
# ... eventually switch this to pick up python3
import company.package # This is Python3 safe.

...
print "This - will fail hard"

我想做的(如果可能的话)是在我控制的“company.package”代码中插入一些全局警告指令 - 以便用户可以在全局解释器被拉到Python3之前收到警告。这可能吗?

最佳答案

您可以检测脚本何时在 Python 2.x 中运行并发出更新警告,如下所示:

import warnings
import sys

if sys.version_info < (3,0):
warnings.warn("company.package will be ported to Python 3 soon. Make sure that your script is Py3k-safe!")

不幸的是,除了基于静态分析(例如使用 2to3 工具)和/或广泛的单元测试的人工检查之外,无法确保 Python 脚本在 Python3 中顺利运行。

编辑:移植到Python 3不仅是语法问题,还涉及模块重命名(例如被拆分的urllib,或cStringIO)和概念更改(就像字节数组/字符串的区别)。没有导入魔法来检查这一点。

关于python - python 3 的准备工作 : issue warnings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19211466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com