python – 有没有办法用pip install运行2to3?
作者:互联网
我正在尝试使用pip install -r requirements.txt维护依赖项.但是,某些必需的软件包不直接支持Python 3,但可以使用2to3手动转换.
在执行pip install -r requirements.txt时,有没有办法强制pip在这些包上自动运行2to3?
解决方法:
不,它需要成为包安装配置的一部分.见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系统时会自动运行2到3.
2to3是一个工具,而不是魔术子弹,你不能将它应用于从PyPI下载的任意包pip.软件包需要以编码方式支持它.因此,从pip自动运行它是行不通的;责任在于包维护者.
请注意,仅仅因为2to3在一个包上成功运行,它不一定跟在包中将在Python 3中工作.当您实际开始使用该包时,通常会出现关于字节与unicode的假设.
联系您感兴趣的软件包的维护者,询问Python 3的软件包的状态.为它们提供补丁通常会有所帮助.如果此类请求和求助提供充耳不闻,对于开源软件包,您可以随时分叉并自行应用必要的更改.
标签:python,pip,python-2to3,requirements-txt 来源: https://codeday.me/bug/20190825/1724159.html