我是编程的新手,需要一些修复工具的帮助来将为Python 3.x编写的代码重构为可以在2.x解释器上运行的代码.
我有Python 3.2,但Spotify Puzzle的入场许可(http://www.spotify.com/us/jobs/tech/best-before/)要求代码是用2.6编写的.因此,我找到了3to2的转换器.我有"3to2_py3k-1.0.tar.gz"版本,您可以从这里下载:https://bitbucket.org/amentajo/lib3to2 .
README文件告诉您
(...)运行"./3to2"转换stdin(" - "),作为参数给出的文件或目录.(...)
此站点上的文本与README文件相同.
我理解这个我应该运行命令行然后写:
C:\ Python32> 3to2 Spotify.py
3to2不被识别为实习或外部命令,程序或批处理文件.
(从挪威语翻译).
我试图找到特定文件的路径,但没有名为"3to2"的文件.我试图直接找到"main.py"文件和"Spotify.py",看起来好像发生了事情(就像它需要一点点时间,没有错误),但是当我打开"Spotify"时.py"再一次,文件没有发生任何事情.
我感谢所有的帮助.
谢谢spatz,这帮了很多忙.最后,我设法安装了包cd C:\Python32>python.exe setup.py install
无论如何,我仍然有一些问题.以print("Hello World!")程序为例.当我运行python.exe 3to2 HelloWorld.py(没有python.exe它没有工作)它回答:
RefractingTool: Skipping implicit fixer: collections
RefractingTool: Skipping implicit fixer: int
RefractingTool: Skipping implicit fixer: memoryview
RefractingTool: Skipping implicit fixer: printfunction
RefractingTool: Skipping implicit fixer: inittest
RefractingTool: Refactored HelloWorld.py
--- HelloWorld.py (original)
+++ HelloWorld.py (refactored)
@@ -1 +1 @@
-print("Hello World!")
+print u"Hello World!"
RefactoringTool: Files that need to be modified:
RefactoringTool: HelloWorld.py
Run Code Online (Sandbox Code Playgroud)
这对我来说真的是混合的信号.首先,它似乎跳过了一些修复工具,例如printfunction.但后来,它肯定看起来像它改变了print("Hello World!")与print u"Hello World!"所应当.问题是,当我在IDLE 3.2中打开此文件时,该文件具有原始代码.Spotify.py文件完全相同.IDLE是否"智能"足以改变这个简单的代码,因此它与3.x兼容,或者3to2修复工具集不起作用?
解决方案:我明白了.我不得不把它-w作为一个论点.除了创建备份文件之外,还转换了原始文件.bak.
感谢任何帮助过我的人!
看来你没有正确安装3to2.要安装,请执行以下操作:
.tar.gz下载的文件解压缩到某个目录cd 到该目录并运行 python setup.py install现在你可以cd到目录所在的Spotify.py位置并运行3to2 Spotify.py它应该可以工作.
| 归档时间: |
|
| 查看次数: |
2533 次 |
| 最近记录: |