LiClipse - 无法从cygwin添加python3解释器

时间:2014-10-23 21:41:03

标签: python eclipse python-3.x cygwin pydev

我在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

1 个答案:

答案 0 :(得分:0)

看起来interpreterInfo.py中对ctypes.cdll.cygwin1.cygwin_conv_path的调用输出是字节字符串。 在python2中没问题,因为所有其他字符串声明也是字节字符串(因为没有u''前缀),但在python3中,默认是unicode字符串,因此脚本试图查找字节字符串是否以unicode字符串结尾这不好。

要解决此问题,您需要将nativePath的输入转换为字节字符串(或者在C函数中只是/),然后将输出转换为unicode字符串。 我在GitHub上提出了一个拉取请求:#133