不,它需要成为包设置配置的一部分。见Supporting both Python 2 and 3 with Distribute。
您将元数据添加到您的软件包安装程序中:
setup(
name='your.module',
version = '1.0',
description='This is your awesome module',
author='You',
author_email='your@email',
package_dir = {'': 'src'},
packages = ['your', 'your.module'],
test_suite = 'your.module.tests',
use_2to3 = True,
convert_2to3_doctests = ['src/your/module/README.txt'],
use_2to3_fixers = ['your.fixers'],
use_2to3_exclude_fixers = ['lib2to3.fixes.fix_import'],
)
这样的包会在安装到 Python 3 系统时自动运行 2to3。
2to3 是一个工具,而不是灵丹妙药,您不能将其应用于从 PyPI 下载的任意包 pip。包需要以它的编码方式支持它。因此,从pip 自动运行它是行不通的;责任在于包的维护者。
请注意,仅仅因为 2to3 在包上成功运行,它并不一定遵循包在 Python 3 中的工作。当您实际开始使用包时,通常会出现关于字节与 unicode 的假设。
联系您感兴趣的软件包的维护者,询问该软件包在 Python 3 中的状态。为他们提供补丁通常会有所帮助。如果此类请求和提供的帮助被置若罔闻,对于开源软件包,您始终可以分叉它们并自行应用必要的更改。