我在Windows 7,64bit上运行LiClipse。
当我转到首选项 - > PyDev-> Interpreters-> Python Interpreter-> New时,尝试添加位于C:\ cygwin \ bin \ python3.2m.exe的解释器。我看到错误Unable to get info on the interpreter... Reason: See error log for details.
在日志中:
No output was in the standard output when
trying to create the interpreter info for: C:\cygwin\bin\python3.2m.exe
The error output contains:
>>Traceback (most recent call last):
File "C:\Program Files\Brainwy\LiClipse 1.2.0\plugins\org.python.pydev_3.8.0.201409251617\pysrc\interpreterInfo.py", line 167, in <module>
if sys.platform == "cygwin" and not executable.endswith('.exe'):
TypeError: endswith first arg must be bytes or a tuple of bytes, not str
<<
这看起来像python2 vs python3问题,但我不完全确定我做错了什么,pydev与3.2兼容?我打算开发3.x代码,所以我需要使用python3解释器。
修改:如果我改为选择C:\cygwin\bin\python2.7.exe
,则可以。这里肯定会有Python3不可思议的东西。
PyDev版本:3.8.0.201409251617
答案 0 :(得分:0)
看起来interpreterInfo.py中对ctypes.cdll.cygwin1.cygwin_conv_path
的调用输出是字节字符串。
在python2中没问题,因为所有其他字符串声明也是字节字符串(因为没有u''
前缀),但在python3中,默认是unicode字符串,因此脚本试图查找字节字符串是否以unicode字符串结尾这不好。
要解决此问题,您需要将nativePath
的输入转换为字节字符串(或者在C函数中只是/
),然后将输出转换为unicode字符串。
我在GitHub上提出了一个拉取请求:#133。