如何在python中正确使用2to3?

如何在python中正确使用2to3?,python,python-2.7,python-3.3,python-2to3,Python,Python 2.7,Python 3.3,Python 2to3,我在Python2.7中有一些代码,我想把它们全部转换成Python3.3代码。我知道2T3可以使用,但我不确定具体如何使用 安装以下模块,将2to3命令直接添加到入口点 pip install 2to3 如上面所述,要将整个项目从一个目录树转换为另一个目录树,请使用: 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode 要将目录中的所有python 2文件转换为3,只需在要转换的目录中运行$C:\Pro

我在Python2.7中有一些代码,我想把它们全部转换成Python3.3代码。我知道2T3可以使用,但我不确定具体如何使用

安装以下模块,将2to3命令直接添加到入口点

pip install 2to3
如上面所述,要将整个项目从一个目录树转换为另一个目录树,请使用:

2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode

要将目录中的所有python 2文件转换为3,只需在要转换的目录中运行
$C:\Program files\python\Tools\Scripts\2to3.py-w-n.
。它将跳过所有非
.py
文件,并转换其余文件。

注意:如果还需要备份文件,请删除-n标志。

如果已经安装了python,则python 2to3.py文件主要位于目录C:/Program Files/python/Tools/scripts中。我有Python3.6和2to3在目录C:/Program Files/Python36/Tools/scripts中。 要将特定的Python2代码转换为Python3,请转到命令promt,将目录更改为C:/Program Files/Python36/Tools/scripts,其中包含2to3文件。然后添加以下命令: python2to3.py-w(脚本的目录)

例如C:\ProgramFiles\Python36\Tools\scripts>Python2to3.py-WC:Users\Iykes\desktop\test.py

此处的'-w'确保为您的文件创建备份文件。

在Windows上:

python {path_to_python}\tools\scripts\2to3.py --output-dir={output_dir} -W -n {input_dir}
path\u to\u python
=安装python的目录

output\u dir
=输出Python3脚本的目录


input\u dir
=从何处读取Python2脚本的目录

如果路径上没有
2to3
,可以直接调用
lib2to3

python -m lib2to3 directory\file.py
如(和其他答案)所述,您可以使用一些标志进行更多定制:

  • 启用写回的
    -w
    标志,将更改应用于文件
  • 禁用备份的
    -n
(还有几个标志;有关更多信息,请参阅文档。)

在运行
2to3
之前进行备份非常重要

  • 如果您使用的是git,请进行提交
  • 否则,请备份您的文件
  • 首先,在“软模式”下运行2to3,看看它实际会做什么:

    $ 2to3 /path/to/your/project
    
    如果您对它的功能感到满意,那么您可以“真正”运行2to3:


    现在您已经正确运行了
    2to3
    :)

    首先安装python
    2to3
    包:

    C:\Default> pip install 2to3
    
    然后将
    python2
    文件转换为新文件夹中的
    python3
    ,即
    python3版本/mycode

    C:\Default> 2to3 your_file_name.py --output-dir=python3-version/mycode -w -n
    

    新的
    python3
    文件可以在新文件夹中看到,即
    python3版本/mycode
    要将代码从python2转换为python3,请首先使用

    C:\Default> 2to3 your_file_name.py --output-dir=python3-version/mycode -w -n
    
    pip install 2to3
    
    然后在python代码所在的目录中运行此命令

    2to3 -w -n .
    
    • -w标志以启用写回,将更改应用于文件
    • -n禁用备份

      • 运行它非常简单!我会考虑你已经安装了它,并解释如何接着进行:

      • 打开包含要转换文件的主文件夹内的终端(或win用户的cmd)
      • e、 g。
        C:\Users\{your_username}\Desktop\python2folder

      • 类型
      • python{your_2to3.py_install_directory}-w.\

        e、 g.在我的情况下(win10),它将是:

        PythonC:“\Program Files”\Python39\Tools\scripts\2to3.py-w.\

        这将使程序扫描整个目录(以及子目录),并自动将用Python2编写的所有内容转换为Python3

        -w
        标志使脚本应用更改以创建新的转换文件。因此,请删除此项,您只需扫描并查看需要转换的内容(但不实际执行任何操作)

        如果您只想转换一个文件而不是整个文件夹,只需将
        \
        替换为
        python2\u file\u name.py

        e、 g.
        python{your2to3.py directory}-w python2_file_name.py

        此外,默认情况下,它会为转换的所有内容创建一个.bak文件。强烈建议保持这种方式,因为任何转换都容易出错,但如果您想禁用自动备份,也可以添加
        -n
        标志

        e、 g.
        pythonc:“\ProgramFiles”\Python39\Tools\scripts\2to3.py-w-n python2\u file\u name.py


        3.完成

        我可以使用python 2.7脚本文件夹中的2to3文件吗?因为我听说需要cmd。是的,你可以用那个。你必须打开一个控制台(如果是windows,则为cmd)并执行该文件,该文件提供了答案中所写的正确参数。仍然不太确定如何准确使用。你能提供一些额外的细节吗?我假设你是在windows环境中,因为你提到了cmd。基本上,2to3是一个需要通过控制台运行的python脚本。如果在路径上查找2to3时遇到问题,请尝试“python path/to/script/2to3.py参数”。不过,这期望python也能走上正轨。如果您面临进一步的问题,请尝试在google上搜索“如何在windows中执行python脚本”或更具体地说“如何在windows中执行2to3”,我似乎会收到一个错误,即RefactoringTool:无法打开任何这样的文件或目录如果您删除-w标志,该文件根本不会被转换。删除此标志就像预览您可能的更改一样。@Leonardo Lopez,你说得对。用于关闭备份功能的不是
        -w
        ,而是
        -n
        。谢谢。如果删除-w标志,则文件根本不会被转换。删除此标志就像预览您的潜在更改在linux的情况下,它是2to3-w-n/