问题标签 [python-2to3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - Python 3 写入管道
我正在尝试编写一些代码来将数据放入管道中,并且我希望该解决方案与 python 2.6+ 和 3.x 兼容。例子:
上面的代码适用于 python 2.6,但在 python 3.2 中失败(请注意,上面的代码主要是用 2to3 生成的——我只是把它弄乱了一点,使它与 python 2.6 兼容。)
我已经尝试过这里建议的字节函数(例如 print(bytes(mystr,'ascii')), TypeError: 'str' does not support the buffer interface 但这似乎不起作用。有什么建议吗?
python - 解析 Python 2 和 3 的库
我正在寻找一个允许解析和修改 Python 3 源代码的库。有内置ast
模块,但不允许从 Python 2 解析 Python 3 代码,反之亦然。
是否有这样的库,或者让ast
模块在 Python 3 上识别 Python 2 代码的方法?
python - Python 2to3 不工作
我目前正在通过 python 挑战,我已经达到 4 级,看这里我只学习 python 几个月,我正在尝试学习 python 3 over 2.x 到目前为止这么好,除了当我使用这段代码时,这里是 python 2.x 版本:
因此,要将其转换为 3,我将更改为:
因此,如果我运行 2.x 版本,它工作正常,通过循环,抓取 url 并走到最后,我得到以下输出:
如果我运行 3.x 版本,我会得到以下输出:
因此,如果我在这一行中将 r 更改为 ab
我得到:
有任何想法吗?
我对编程很陌生,所以请不要咬我的头。
_bk201
oauth - OAuth 身份验证,无效签名
我厌倦了将request-oauth库(基于python-request)移植到 Python 3(在 2to3 的帮助下),但是我在使用 StatusNet 验证签名时遇到了问题(与 Twitter 相同的 API)。
当我向 发出请求时oauth/request_token
,我没有问题,但oauth/access_token
我有一个错误401 Invalid signature
。我不明白为什么,因为在我看来,我签署的内容是正确的。
例如,使用 python 2 代码,cf hook.py和auth.py(原始来自 git repo),我得到:
并使用我的 python 3 端口 cf hook.py和auth.py,我得到:
两者对我来说都不错,但第一个成功,第二个返回 401 错误,无效签名。
在这两种情况下,我得到token.key
andtoken.secret
作为结果:
他们,我去oauth/authorize?oauth_token=%s" % oauth_hook.token.key
获得应用程序的授权并获得一个密码。之后我可以做有问题的请求
auth.py 文件中的签名代码是
知道为什么它不适用于 py3k 代码吗?
谢谢
python - 在哪里可以找到 build_tests 命令?
当我阅读使用 tox 在多个 python 中测试一个包的示例时,我发现了一个"build_tests"
将(2to3
'd)测试文件放在build/
目录中的命令。我也可以在一些项目的tox.ini
文件和一些 gentoo ebuilds 中搜索它,但我仍然不知道哪个包安装了这个命令。我有 python 3.2,最后一个鼻子测试和最后一个分发,但"python setup.py build_tests"
仍然给出错误。
那么我必须安装什么才能获得此命令?
python - setup.py 中的 2to3 未转换测试?
我有一个需要同时支持 Python 2 和 3 的 setup.py。
该代码当前可以运行并且可以在 Python 2.x 中安装
如果我将该use_2to3 = True
子句添加到我的 setup.py,那么该模块可以安装在 Python 3 中,但是,执行以下操作:
导致失败,因为其中一个测试使用 StringIO 类,并且 Python 3 中的导入行出错(当前from StringIO import StringIO
是 ,在 Python3 中应该是from io import StringIO
我认为,一旦添加了 use_2to3 关键字,所有测试(包括单元测试)都会在测试之前由 2to3 处理。
我错过了什么?如果有帮助,我的 setup.py 的大部分内容如下所示:
编辑:我觉得好像 2to3 没有在 a 上运行的原因python setup.py test
是它爆炸了,堆栈跟踪的底部显示:
但是,如果我在 test_mymodule.py 上运行 2to3,那么该导入行应该已经改写为:
并且(在最坏的情况下)测试应该单独失败。
python - 如何在 Windows 中使用 2to3 工具?
我尝试通过运行命令使用 2to3 工具修改 sintax
并得到了输出
但是,当打开 neo4j.py 时,我注意到没有任何改变。下面是应该进行更改(根据输出)的代码块:
有谁知道如何正确使用 2to3 工具以便将代码移植/更改为 v3.2?
python - Python 2 和 Python 3 双重开发
我刚刚开始一个新的 Python 项目,理想情况下,我想从一开始就提供 Python 2 和 3 支持,并且开发开销最小。我的问题是,对于全新的项目,最好的方法是什么?
作为安装脚本的一部分,我遇到过运行 2to3 甚至 3to2 的项目。这似乎是一种很常见的方式。但是,似乎有几种不同的方法可以做到这一点。我也遇到了Distribute。
还可以选择尝试编写多语言 Python 2/Python 3 代码。尽管这似乎是一个可怕的想法,但我注意到我最近倾向于编写比 Python 3 代码更惯用的代码,即使我仍然将它作为 Python 2 运行。我觉得这只会帮助我自己的过渡,当日子终于到来了,但并没有为提供或至少帮助双重支持做太多事情。
我看到的大多数提供双重支持的项目都在后期添加了 Python 3 支持,所以我特别好奇是否有更好的方法更适合新项目,您可以从中受益。
谢谢!
python - 2to3-2.7 和 2to3-3.1 有什么区别?
我的 Ubuntu 12.04 库存 python 安装有 2 个用于将代码转换为 Python 3.x 的程序:2to3-2.7
和2to3-3.1
. 有什么不同?
python - python 2to3 中的 eval(input())
来自 Python 2to3 文档:
input
:转换
input(prompt)
为eval(input(prompt))
在使用 Python 2 几年后,我目前正在尝试学习 Python 3。任何人都可以解释为什么该工具eval
在调用之前插入input
,以及我是否应该在我的所有 Python 3 代码中这样做?