将Python 3.5项目转换为Jython-UnicodeDecodeError:&x27;UnicodeScape';编解码器可以';t解码位置4-10的字节:非法Unicode字符

将Python 3.5项目转换为Jython-UnicodeDecodeError:&x27;UnicodeScape';编解码器可以';t解码位置4-10的字节:非法Unicode字符,python,python-2.7,python-3.x,jython-2.7,Python,Python 2.7,Python 3.x,Jython 2.7,我的最终目的是将正在运行的Python项目转换为Jython解释器,因为将添加一些JavaAPI 详细信息: 最新的Jython是2.7 我的项目可以用Python 3.5运行 因此我采取了以下方法: 第一件事是利用future模块和巴氏杀菌可执行文件将我的项目转换为Python2.7。 此步骤已成功完成 第二件事是将Python 2.7项目转换为Jython 2.7项目。 在Eclipse mars上切换解释器时,显示以下错误: console: Failed to install '':

我的最终目的是将正在运行的Python项目转换为Jython解释器,因为将添加一些JavaAPI

详细信息:

  • 最新的Jython是2.7
  • 我的项目可以用Python 3.5运行
因此我采取了以下方法:

第一件事是利用future模块和巴氏杀菌可执行文件将我的项目转换为Python2.7。 此步骤已成功完成

第二件事是将Python 2.7项目转换为Jython 2.7项目。 在Eclipse mars上切换解释器时,显示以下错误:

console: Failed to install '': java.nio.charset.UnsupportedCharsetException: cp0.
为了解决这个问题,使用了来自的解决方案,将编码参数
-Dpython.console.encoding=UTF-8
传递给java虚拟机,如下图所示:

再次尝试跑步时竖起大拇指。但不幸的是,下面显示的错误刚刚出现。由于我不打算在没有必要的情况下更改任何导入的模块,所以我决定在这里寻求帮助

pydev debugger: starting (pid: 4216)
Traceback (most recent call last):
  File "C:\Users\souzadan\.p2\pool\plugins\org.python.pydev_4.4.0.201510052309\pysrc\pydevd.py", line 2364, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "C:\Users\souzadan\.p2\pool\plugins\org.python.pydev_4.4.0.201510052309\pysrc\pydevd.py", line 1784, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Users\souzadan\FirmwareDevTools\Workspaces\Eclipse\aPythonWorkspace\aPythonProject\aPythonFolder\aPythonFile.py", line 7, in <module>
    standard_library.install_aliases()
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\standard_library\__init__.py", line 465, in install_aliases
    from future.backports.urllib import request
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\backports\urllib\request.py", line 96, in <module>
    from future.backports import email
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\backports\email\__init__.py", line 16, in <module>
    from future.utils import surrogateescape
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\utils\surrogateescape.py", line 167, in <module>
    FS_ENCODING = 'ascii'; fn = b('[abc\xff]'); encoded = u('[abc\udcff]')
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\utils\surrogateescape.py", line 25, in u
    return text.decode('unicode_escape')
UnicodeDecodeError: 'unicodeescape' codec can't decode bytes in position 4-10: illegal Unicode character
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py", line 297, in _MainThread__exitfunc
    t.join()
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py", line 128, in join
    raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread
Error in sys.exitfunc:
Traceback (most recent call last):
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py", line 297, in _MainThread__exitfunc
    t.join()
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py", line 128, in join
    raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread
pydev调试器:正在启动(pid:4216) 回溯(最近一次呼叫最后一次): 文件“C:\Users\souzadan\.p2\pool\plugins\org.python.pydev_4.4.0.201510052309\pysrc\pydevd.py”,第2364行,在 globals=debugger.run(setup['file'],None,None,is_模块) 文件“C:\Users\souzadan\.p2\pool\plugins\org.python.pydev_4.4.0.201510052309\pysrc\pydevd.py”,第1784行,正在运行 pydev_imports.execfile(文件、全局、局部)#执行脚本 文件“C:\Users\souzadan\FirmwareDevTools\workspace\Eclipse\aPythonWorkspace\aPythonProject\aPythonFolder\aPythonFile.py”,第7行,在 标准\u库。安装\u别名() 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\standard\u library\\uuuuuuuu init\uuuuuuuuuuuuu.py”,第465行,位于安装别名中 从future.backports.urllib导入请求 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\backports\urllib\request.py”,第96行 从future.backport导入电子邮件 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\backport\email\\ init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 从future.utils导入代理景观 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\utils\subrogateScape.py”,第167行,在 FS_编码='ascii';fn=b(“[abc\xff]”);encoded=u(“[abc\udcff]”) 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\utils\subrogateScape.py”,第25行,单位为u 返回text.decode('unicode\u escape') UnicodeDecodeError:“UnicodeScape”编解码器无法解码位置4-10中的字节:非法Unicode字符 atexit中出错。\u运行\u退出功能: 回溯(最近一次呼叫最后一次): 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\atexit.py”,第24行,在运行退出功能中 func(*targs,**kargs) 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py”,第297行,位于_MainThread\uu exitfunc中 t、 加入 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py”,第128行,在join中 引发运行时错误(“无法加入当前线程”) RuntimeError:无法加入当前线程 sys.exitfunc中的错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\atexit.py”,第24行,在运行退出功能中 func(*targs,**kargs) 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py”,第297行,位于_MainThread\uu exitfunc中 t、 加入 文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\threading.py”,第128行,在join中 引发运行时错误(“无法加入当前线程”) RuntimeError:无法加入当前线程 通过命令行运行Jython会导致更短的错误日志:

Traceback (most recent call last):
  File "somePythonCode.py", line 7, in <module>
    standard_library.install_aliases()
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\standard_library\__init__.py", line 465, in install_aliases
    from future.backports.urllib import request
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\backports\urllib\request.py", line 96, in <module>
    from future.backports import email
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\backports\email\__init__.py", line 16, in <module>
    from future.utils import surrogateescape
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\utils\surrogateescape.py", line 167, in <module>
    FS_ENCODING = 'ascii'; fn = b('[abc\xff]'); encoded = u('[abc\udcff]')
  File "C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site-packages\future-0.15.2-py2.7.egg\future\utils\surrogateescape.py", line 25, in u
    return text.decode('unicode_escape')
UnicodeDecodeError: 'unicodeescape' codec can't decode bytes in position 4-10: illegal Unicode character
回溯(最近一次呼叫最后一次):
文件“somePythonCode.py”,第7行,在
标准\u库。安装\u别名()
文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\standard\u library\\uuuuuuuu init\uuuuuuuuuuuuu.py”,第465行,位于安装别名中
从future.backports.urllib导入请求
文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\backports\urllib\request.py”,第96行
从future.backport导入电子邮件
文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\backport\email\\ init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
从future.utils导入代理景观
文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\utils\subrogateScape.py”,第167行,在
FS_编码='ascii';fn=b(“[abc\xff]”);encoded=u(“[abc\udcff]”)
文件“C:\Users\souzadan\FirmwareDevTools\Compilers\Jython2.7.0\Lib\site packages\future-0.15.2-py2.7.egg\future\utils\subrogateScape.py”,第25行,单位为u
返回text.decode('unicode\u escape')
UnicodeDecodeError:“UnicodeScape”编解码器无法解码位置4-10中的字节:非法Unicode字符
有人知道如何以最优雅的方式解决这个错误吗

在Jython.org上创建了一个严重性很高的Python模块,因为许多人已经在使用最新的Python模块和解释器。他们可能想在代码中添加Java功能。所以他们基本上要走和我一样的路。将项目向后移植到Python2.7,然后再向后移植到Jython2.7


在python上,也记录了一个未来。

正如罗兰·史密斯(Roland Smith)所建议的,依靠py4j将是将应用程序移植到JVM环境的一个好方法。

问题是我不想改变librar