LookupError:未知编码:仅来自子进程的idna。

2024-05-15 22:15:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图使用subprocess.call从铁制python脚本调用python 2.7脚本。 调用的进程使用IronPython中不支持的导入,如scikit-learnrequests

当前,我正试图使用以下命令调用Python2.7脚本:

sub_ret_val = subprocess.call("C:/Documents and Settings/avishay/workspace/BursaProject_V1_31/brainManager_toFile.py", shell = True, stderr = subprocess.STDOUT)

但我得到:

LookupError: unknown encoding: idna

现在,如果我从WindowsShell或EclipsePydev环境运行这个脚本,它可以正常工作。从shell运行它和从subprocess.call运行它导致失败有什么区别??

谢谢

---编辑---

似乎我也无法导入encodings.idna:

ImportError: No module named idna

这很奇怪。。。 打印sys.path显示c:\\Python27\\Lib在那里,并且idna.py文件在编码目录中。。。怎么进口不起作用???

---再编辑一次---

我找到了一种解决问题的方法——从python外壳启动IronPython脚本——一切都很好。我仍然不知道为什么从IronPython调用python 2.7解释器会干扰python2.7内部模块。。。PYTHONPATH确实包含了这些模块的路径,因此我非常感谢您对引擎盖下发生的事情有任何深入的了解。


Tags: 模块py脚本编辑进程scikitshellcall