标签: python-2to3

使用python 3取消python 2对象

我想知道是否有任何方法可以加载Python 2.4中使用Python 3.4进行pickle的对象.

我已经在大量公司遗留代码上运行2to3以使其保持最新状态.

完成此操作后,运行该文件时出现以下错误:

  File "H:\fixers - 3.4\addressfixer - 3.4\trunk\lib\address\address_generic.py"
, line 382, in read_ref_files
    d = pickle.load(open(mshelffile, 'rb'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1: ordinal
not in range(128)
Run Code Online (Sandbox Code Playgroud)

寻找在争用酸洗对象,这是一个dict在一个dict,包含类型的键和值str.

所以我的问题是:有没有办法加载一个对象,最初在python 2.4中使用python 3.4进行腌制?

python pickle python-2.4 python-2to3 python-3.x

114
推荐指数
2
解决办法
7万
查看次数

你打算如何处理迁移到Python 3?

考虑到Python 3即将推出,我确信这是大多数python开发人员的主题.一些问题让我们朝着正确的方向前进:

  1. 你是否会同时维护python 2和python 3版本,或者你只需​​要一个python 3版本一旦完成?

    • 您是否已经开始或计划很快开始?或者你打算等到最终版本出来全面展开?

python migration python-2to3 python-3.x

52
推荐指数
3
解决办法
9867
查看次数

为什么Python 3需要用list()包装dict.items?

我正在使用Python 3.我刚刚安装了一个Python IDE,我对以下代码警告感到好奇:

features = { ... }
for k, v in features.items():
    print("%s=%s" % (k, v))
Run Code Online (Sandbox Code Playgroud)

警告是:"对于Python3支持应该看起来像...... list(features.items())"

http://docs.python.org/2/library/2to3.html#fixers上也提到了这一点

它还在对列表的调用中包含了dict.items(),dict.keys()和dict.values()的现有用法.

为什么这有必要?

python python-2to3 python-3.x

44
推荐指数
3
解决办法
4万
查看次数

如何正确使用2to3 for python?

我在python 2.7中有一些代码,我想将它全部转换为python 3.3代码.我知道2to3可以使用,但我不确定如何使用它.谢谢你的帮助

python python-2to3 python-2.7 python-3.3

38
推荐指数
5
解决办法
3万
查看次数

Python 2和Python 3双重开发

我刚刚开始一个新的Python项目,理想情况下我想从一开始就提供Python 2和3支持,只需要很少的开发开销.我的问题是,为全新项目做这件事的最佳方法是什么?

作为安装脚本的一部分,我遇到了运行2to3甚至3to2的项目.这似乎是一种非常常见的方式.但是,似乎有几种不同的方法可以做到这一点.我也遇到了Distribute.

还可以选择编写多语言Python 2/Python 3代码.即使这看起来像一个可怕的想法,我注意到我最近编写的代码更像是Python 3代码,尽管我仍然以Python 2运行它.我有一种感觉这只会帮助我自己的过渡时这一天终于到来了,并没有为提供或至少帮助双重支持做多少.

我提供的大多数提供双重支持的项目都是后期添加了Python 3的支持,所以我特别好奇是否有更好的方法更适合新项目,你可以从中获得清晰的好处.

谢谢!

python python-2to3 python-3.x

29
推荐指数
4
解决办法
3442
查看次数

如何在Windows中使用2to3工具?

我尝试通过运行命令使用2to3工具修改sintax

python C:\Python32\Tools\scripts\2to3.py neo4j.py
Run Code Online (Sandbox Code Playgroud)

得到了输出

在此输入图像描述

打开neo4j.py时,我注意到没有任何改变.下面是应该进行更改(符合输出)的代码块:

try:
    import json
except ImportError:
    import simplejson as json
try:
    from urllib.parse import quote
except ImportError:
    from urllib import quote
try:
    from . import rest, batch, cypher
except ImportError:
    import rest, batch, cypher
except ValueError:
    import rest, batch, cypher

import logging
logger = logging.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何正确使用2to3工具,以便将代码移植/更改为v3.2?

python python-2to3

24
推荐指数
1
解决办法
3万
查看次数

按可以为None的属性对列表进行排序

我正在尝试使用排序对象列表

my_list.sort(key=operator.attrgetter(attr_name))

但如果有任何列表项attr = None而不是attr = 'whatever',

然后我得到了 TypeError: unorderable types: NoneType() < str()

在Py2中,这不是问题.我如何在Py3中处理这个?

python python-2to3 python-3.x

19
推荐指数
4
解决办法
1万
查看次数

TypeError:需要类似字节的对象,而不是'str' - python 2到3

嗨,我遇到此错误消息的问题.我是Python的新手,这个Python2和Python3很麻烦.我不知道该怎么做,错误信息如下所示.

Using Ticker: AAPL
    Traceback (most recent call last):
      File "realtime.py", line 18, in <module>
        r=requests.get(auth_url, headers={"Authorization": "Basic %s" % base64.b64encode(os.environ['INTRINIO_USER'] + ":" + os.environ['INTRINIO_PASSWORD'])})
      File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\base64.py", line 58, in b64encode
        encoded = binascii.b2a_base64(s, newline=False)
    TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

我使用的代码如下所示.

import websocket
import _thread
import time
import requests
import base64
import json
import sys
import os
from requests.auth import HTTPBasicAuth

try:
    print ("Using Ticker: " + str(sys.argv[1]))
except:
    print ("Please include ticker as first argument")
    sys.exit() …
Run Code Online (Sandbox Code Playgroud)

python typeerror python-2to3

17
推荐指数
1
解决办法
4万
查看次数

试图在非包装中进行相对导入(2to3之后)

在使用2to3(参见我之前的问题)转换为Python 3.x之后,我在构建期间收到此错误:

  File "setup.py", line 28, in <module>
    from . import mof_compiler
ValueError: Attempted relative import in non-package
Run Code Online (Sandbox Code Playgroud)

代码:

from . import mof_compiler
mof_compiler._build()
Run Code Online (Sandbox Code Playgroud)

但我不知道为什么这是错的,因为mof_compiler在同一个目录中setup.py.请帮忙!

python python-2to3 python-3.x

15
推荐指数
1
解决办法
2万
查看次数

如何使用/安装python 2to3?

从这个https://docs.python.org/3.4/library/2to3.html它说2to3应该作为脚本安装在python解释器旁边.但是,在我的/ usr/bin /文件夹中没有2to3可执行文件,并且find从/找不到2to3可执行文件.但是我在/usr/lib64/python{3.4/2.7}/lib2to3上有一个名为lib2to3的文件夹,但是我找不到任何相关内容.在python/site-packages/setuptools /中有一个lib2to3_ex.py脚本,但如果我运行它没有任何反应.我怎样才能达到我可以简单输入的程度2to3 upgradethisscripttopython3.py

python python-2to3

13
推荐指数
3
解决办法
3万
查看次数