gpt4 book ai didi

Eclipse 使用带有 execnet 的多个 Python 解释器

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:45 24 4
gpt4 key购买 nike

我正在使用 execnet package允许不同 Python 解释器解释的 Python 脚本之间进行通信。

以下代码(test_execnet.py):

import execnet
for python_version in ('python', 'python3'):
try:
gw = execnet.makegateway("popen//python="+python_version)
ch = gw.remote_exec('channel.send(1/3)')
res = ch.receive()
print(python_version, ': ', res, sep ="")
except:
print('problems with ', python_version)

在命令行终端中完美运行,显示以下输出:

$ python3 test_execnet.py 
python: 0
python3: 0.333333333333

但是,如果我尝试从 Eclipse IDE 中运行相同的代码,我会收到以下错误:

'import site' failed; use -v for traceback
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 4, in <module>
File "<string>", line 2, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/site-packages/execnet/gateway_base.py", line 8, in <module>
import sys, os, weakref
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/os.py", line 380, in <module>
from _abcoll import MutableMapping # Can't use collections (bootstrap)
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/_abcoll.py", line 54
class Hashable(metaclass=ABCMeta):
^
SyntaxError: invalid syntax
problems with python
problems with python3

注意:

  • Eclipse 版本:3.6.0
  • 为项目配置的 PyDev 解释器:python3
  • “首选项/解释器 - Python”的 Python 解释器:
    • python (/usr/bin/ python )
    • python3 (/Library/Frameworks/Python.Framework/Versions/3.1/Resources/Python.app/Contents/MacOS/Python

编辑:

我写了一段代码来显示 os.environ,如下所示:

for python_version in ('python', 'python3'):
try:
import os
for item in os.environ:
print(item, '= ', os.environ[item])
except:
print('problems with ', python_version)

我得到了以下输出:

文件的 FileMerge 比较可以在 eclipse_output.txt vs. terminal_output.pdf 找到.

有什么提示吗?谢谢

最佳答案

似乎 pydev 进行了站点自定义,特别是修改了交互/控制台使用的内容(从快速浏览 http://github.com/aptana/Pydev/blob/master/plugins/org.python.pydev/pysrc/pydev_sitecustomize/sitecustomize.py 判断)。这对于 execnet 介导的进程没有用或不合适。

您可以在调用 execnet.makegateway 之前尝试“del os.environ['PYTHONPATH']”,或者,为了更加小心,只需删除其中的 sitecustomize 部分。

嗯,霍尔格

关于Eclipse 使用带有 execnet 的多个 Python 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3248271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com