我试图从 Iron python 调用 python 2.7 脚本,使用subprocess.call
. 调用的进程使用 IronPython 不支持的导入,例如scikit-learn
和requests
.
目前我正在尝试使用此命令调用 python 2.7 脚本:
sub_ret_val = subprocess.call("C:/Documents and Settings/avishay/workspace/BursaProject_V1_31/brainManager_toFile.py", shell = True, stderr = subprocess.STDOUT)
但我得到:
LookupError:未知编码:idna
现在,如果我从 windows shell 或 eclipse pydev 环境运行这个脚本,它就可以正常工作。subprocess.call
从外壳运行它与运行它导致它失败有什么区别?
谢谢
- -编辑 - -
看来我也不能导入 encodings.idna :
ImportError:没有名为 idna 的模块
这非常非常奇怪......打印sys.path
显示c:\\Python27\\Lib
在那里,并且 idna.py 文件在 encodings 目录中......导入怎么会不起作用?
---再编辑---
我找到了解决问题的一种方法——从 python shell 启动 IronPython 脚本——一切正常。我仍然不知道为什么从 IronPython 调用 python 2.7 解释器会干扰 python 2.7 内部模块...... PYTHONPATH 确实包含这些模块的路径,所以我非常感谢对幕后发生的事情的任何洞察。