首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python 3的准备工作:发布警告?

python 3的准备工作:发布警告?
EN

Stack Overflow用户
提问于 2013-10-06 17:02:14
回答 1查看 303关注 0票数 1

我是一个相当大的Python包的主要罪魁祸首,它在我们的组织内部使用。我正在为Python3编写包;对于我自己控制的代码来说,这是相当可行的--但是有许多“在野外”的脚本,如果/当组织默认解释器被拉到3.x时,这些脚本就会中断。典型情况如下:

一些我没有控制的随机脚本:

代码语言:javascript
复制
#!/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之前得到警告。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-06 17:10:31

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

代码语言:javascript
复制
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!")

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

编辑:移植到Python3不仅是语法问题,而且涉及模块重命名(比如urllib,它被拆分,或者cStringIO)和概念更改(比如字节数组/字符串的区别)。没有import的魔力来验证这一点。

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

https://stackoverflow.com/questions/19211466

复制
相关文章

相似问题

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