Pydev频繁丢失解释器配置,日志报“unknown encoding: idna”错误
问题描述
每次重启Eclipse后,所有Python3文件均无法打开,提示解释器配置错误。进入配置界面后发现之前的解释器配置全部丢失,需重新配置。已确认Eclipse对Windows系统中所有配置写入路径拥有写入权限,日志中反复出现如下错误:
- Err output: Traceback (most recent call last): File "C:\Users\me\.p2\pool\plugins\org.python.pydev.core_10.1.3.202301231743\pysrc\pycompletionserver.py", line 6, in <module> from _pydevd_bundle.pydevd_constants import IS_JYTHON File "C:\Users\me\.p2\pool\plugins\org.python.pydev.core_10.1.3.202301231743\pysrc\_pydevd_bundle\pydevd_constants.py", line 32, in <module> _codecs.lookup(_codec) LookupError: unknown encoding: idna !STACK 0 java.lang.RuntimeException: Error creating python process - exited before creating sockets - exitValue = (1). ProcessInfo: - Executed: C:\Windows\py.exe -u C:\Users\me\.p2\pool\plugins\org.python.pydev.core_10.1.3.202301231743\pysrc\pycompletionserver.py 58747
有时还会出现如下堆栈跟踪:
at org.python.pydev.core.log.Log.log(Log.java:33) at org.python.pydev.ast.codecompletion.shell.AbstractShell.startIt(AbstractShell.java:287) at org.python.pydev.ast.codecompletion.shell.ShellsContainer.getServerShell(ShellsContainer.java:240) at org.python.pydev.ast.codecompletion.shell.ShellsContainer.getServerShell(ShellsContainer.java:168) at org.python.pydev.ast.codecompletion.shell.AbstractShell.getServerShell(AbstractShell.java:219) at org.python.pydev.ast.codecompletion.revisited.modules.CompiledModule.createTokensFromServer(CompiledModule.java:377) at org.python.pydev.ast.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:180) at org.python.pydev.ast.codecompletion.revisited.modules.AbstractModule.createModule(AbstractModule.java:293) at org.python.pydev.ast.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:1038) at org.python.pydev.ast.codecompletion.revisited.ModulesManager.getModule(ModulesManager.java:869) at org.python.pydev.ast.codecompletion.revisited.SystemModulesManager.getModule(SystemModulesManager.java:400) at com.python.pydev.analysis.additionalinfo.AbstractAdditionalDependencyInfo.updateKeysIfNeededAndSave(AbstractAdditionalDependencyInfo.java:259) at com.python.pydev.analysis.system_info_builder.InterpreterInfoBuilder.syncInfoToPythonPath(InterpreterInfoBuilder.java:171) at com.python.pydev.analysis.system_info_builder.InterpreterInfoBuilder.syncInfoToPythonPath(InterpreterInfoBuilder.java:97) at com.python.pydev.analysis.system_info_builder.InterpreterInfoBuilder.syncInfoToPythonPath(InterpreterInfoBuilder.java:83) at org.python.pydev.ast.codecompletion.revisited.SyncSystemModulesManager.synchronizeManagerToNameToInfoPythonpath(SyncSystemModulesManager.java:392) at org.python.pydev.ast.codecompletion.revisited.SyncSystemModulesManagerScheduler$SynchJob.run(SyncSystemModulesManagerScheduler.java:257) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
解决方案
1. 替换Python启动器为具体解释器路径
日志显示当前使用C:\Windows\py.exe作为解释器启动器,该工具可能存在编码或版本匹配问题。在Eclipse的Python解释器配置中,直接指定具体的Python安装路径(如C:\Python39\python.exe),绕过py.exe启动器。
2. 修复Python的idna编码支持
错误LookupError: unknown encoding: idna表明Python环境缺少idna编码组件,可通过以下方式修复:
- 重新安装对应版本的Python,选择“修复”选项,确保标准库完整。
- 打开命令提示符,执行
pip install idna(虚拟环境需先激活)手动安装idna包。
3. 更新PyDev插件至最新版本
当前使用的PyDev版本为10.1.3,可能存在兼容性bug。进入Eclipse插件市场,搜索PyDev并更新到最新稳定版,新版本通常会修复编码和配置保存相关问题。
4. 清除PyDev缓存文件
关闭Eclipse后,删除以下路径的缓存文件,重启后重新配置解释器:
C:\Users\me\.eclipse路径下的org.python.pydev相关文件夹C:\Users\me\.pydev文件夹
5. 配置系统编码环境变量
在系统环境变量中添加或修改PYTHONIOENCODING变量,设置值为utf-8,避免编码冲突导致的配置丢失问题,设置完成后重启Eclipse。
内容的提问来源于stack exchange,提问作者latinerd
相关产品推荐
相关产品推荐

