簡體   English   中英

為PyDev安裝Jython時出錯

[英]Error while installing Jython for PyDev

我之前在Eclipse中安裝了PyDev和Jython,但從未遇到過問題。 但是,這次我在手動或自動安裝中遇到了錯誤:

Unable to gather the needed info from the system.

This usually means that your interpreter is not in
the system PATH.
No output was in the standard output when trying to create the interpreter info.
The error output contains:>>Traceback (innermost last):
  File "/home/michaele/Downloads/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 89, in ?
  File "/home/michaele/Downloads/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 46, in nativePath
  File "/home/michaele/Downloads/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 51, in fullyNormalizePath
AttributeError: class 'org.python.modules.os' has no attribute 'path'
<<

在命令行上使用Jython或Python運行相同的腳本看起來很好:

$ python /eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py
<xml>
<version>2.6</version>
<executable>/usr/bin/python</executable>
<lib path="out">/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc</lib>
<lib path="ins">/usr/lib/python2.6</lib>
<lib path="ins">/usr/lib/python2.6/plat-linux2</lib>
<lib path="ins">/usr/lib/python2.6/lib-tk</lib>
<lib path="ins">/usr/lib/python2.6/lib-old</lib>
<lib path="ins">/usr/lib/python2.6/lib-dynload</lib>
<lib path="ins">/usr/local/lib/python2.6/dist-packages</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages/PIL</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages/gst-0.10</lib>
<lib path="ins">/usr/lib/pymodules/python2.6</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages/gtk-2.0</lib>
<lib path="ins">/usr/lib/pymodules/python2.6/gtk-2.0</lib>
<forced_lib>__builtin__</forced_lib>
<forced_lib>__main__</forced_lib>
<forced_lib>_ast</forced_lib>
<forced_lib>_bisect</forced_lib>
<forced_lib>_codecs</forced_lib>
<forced_lib>_collections</forced_lib>
<forced_lib>_functools</forced_lib>
<forced_lib>_hashlib</forced_lib>
<forced_lib>_locale</forced_lib>
<forced_lib>_random</forced_lib>
<forced_lib>_socket</forced_lib>
<forced_lib>_sre</forced_lib>
<forced_lib>_ssl</forced_lib>
<forced_lib>_struct</forced_lib>
<forced_lib>_symtable</forced_lib>
<forced_lib>_warnings</forced_lib>
<forced_lib>_weakref</forced_lib>
<forced_lib>array</forced_lib>
<forced_lib>binascii</forced_lib>
<forced_lib>cPickle</forced_lib>
<forced_lib>cStringIO</forced_lib>
<forced_lib>errno</forced_lib>
<forced_lib>exceptions</forced_lib>
<forced_lib>fcntl</forced_lib>
<forced_lib>gc</forced_lib>
<forced_lib>grp</forced_lib>
<forced_lib>imp</forced_lib>
<forced_lib>itertools</forced_lib>
<forced_lib>marshal</forced_lib>
<forced_lib>math</forced_lib>
<forced_lib>operator</forced_lib>
<forced_lib>posix</forced_lib>
<forced_lib>pwd</forced_lib>
<forced_lib>select</forced_lib>
<forced_lib>signal</forced_lib>
<forced_lib>spwd</forced_lib>
<forced_lib>strop</forced_lib>
<forced_lib>sys</forced_lib>
<forced_lib>syslog</forced_lib>
<forced_lib>thread</forced_lib>
<forced_lib>time</forced_lib>
<forced_lib>unicodedata</forced_lib>
<forced_lib>xxsubtype</forced_lib>
<forced_lib>zipimport</forced_lib>
<forced_lib>zlib</forced_lib>
</xml>Traceback (most recent call last):
  File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 142, in <module>
    raise RuntimeError('Ok, this is so that it shows the output (ugly hack for some platforms, so that it releases the output).')
RuntimeError: Ok, this is so that it shows the output (ugly hack for some platforms, so that it releases the output).
$ jython /eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py
<xml>
<version>2.2</version>
<executable>None</executable>
<lib path="out">/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc</lib>
<lib path="ins">/usr/share/jython/Lib</lib>
<lib path="out">/usr/lib/site-python</lib>
<lib path="out">__classpath__</lib>
<forced_lib>sets</forced_lib>
<forced_lib>cPickle</forced_lib>
<forced_lib>math</forced_lib>
<forced_lib>thread</forced_lib>
<forced_lib>md5</forced_lib>
<forced_lib>_jython</forced_lib>
<forced_lib>py_compile</forced_lib>
<forced_lib>time</forced_lib>
<forced_lib>jarray</forced_lib>
<forced_lib>array</forced_lib>
<forced_lib>os</forced_lib>
<forced_lib>xreadlines</forced_lib>
<forced_lib>operator</forced_lib>
<forced_lib>binascii</forced_lib>
<forced_lib>_sre</forced_lib>
<forced_lib>errno</forced_lib>
<forced_lib>synchronize</forced_lib>
<forced_lib>types</forced_lib>
<forced_lib>ucnhash</forced_lib>
<forced_lib>pre</forced_lib>
<forced_lib>struct</forced_lib>
<forced_lib>_weakref</forced_lib>
<forced_lib>new</forced_lib>
<forced_lib>imp</forced_lib>
<forced_lib>exceptions</forced_lib>
<forced_lib>cStringIO</forced_lib>
<forced_lib>sha</forced_lib>
<forced_lib>_codecs</forced_lib>
</xml>Traceback (innermost last):
  File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 142, in ?
RuntimeError: Ok, this is so that it shows the output (ugly hack for some platforms, so that it releases the output).

也可以在Eclipse中使用Python或Jython在交互式控制台中運行,即:

蟒蛇:

import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
/usr/bin/python2.6 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5]
PyDev console: using default backend (IPython not available).
import os
os.path.normpath('/')
'/'

Jython的:

import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
--->  reloading /eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/pydevconsole.py
PyDev console: using default backend (IPython not available).

You are now in a console within Eclipse.
Use it with care as it can halt the VM.
Typing a line with "PYDEV_CONSOLE_TOGGLE_RUN_IN_UI"
will start executing all the commands in the UI thread.

java1.6.0_21 2.2.1
import os
os.path.normpath('/')
'/'

環境信息:

OS- Ubuntu 10.10 Maverick

Eclipse- Version: Indigo Service Release 2
         Build id: 20120216-1857

Python- 2.6.6

Jython- 2.2.1 on java1.6.0_21

Java- java version "1.6.0_21"
      Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
      Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

抱歉,很長的帖子,但我不知道有什么用。 為了使Jython在PyDev中工作無濟於事,我已經盡了一切努力。 任何幫助將不勝感激。

謝謝,

麥克風

編輯1:向Fabio添加響應

感謝您提出的所有建議,我感謝您的幫助。 但是沒有走。

  1. 導致此錯誤:

無法從系統收集所需的信息。

This usually means that your interpreter is not in
the system PATH.
No output was in the standard output when trying to create the interpreter info.
The error output contains:>>Traceback (innermost last):
  File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 15, in ?
ImportError: no module named javaos
<<

這對我來說毫無意義。

  1. 給了我一直得到的相同錯誤:

無法從系統收集所需的信息。

This usually means that your interpreter is not in
the system PATH.
No output was in the standard output when trying to create the interpreter info.
The error output contains:>>Traceback (innermost last):
  File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 89, in ?
  File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 46, in nativePath
  File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 51, in fullyNormalizePath
AttributeError: class 'org.python.modules.os' has no attribute 'path'
<<
  1. 從日食:

    無法從系統收集所需的信息。

    這通常意味着您的解釋器不在系統PATH中。 嘗試創建解釋器信息時,標准輸出中沒有輸出。 錯誤輸出包含:>>跟蹤(最里面的最后一個):(無代碼對象)在第0行文件“ /eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py”,第17行print(' \\ n'.join(os.environ.items()中x的sorted(str(x))))^ SyntaxError:語法無效<<

從控制台:

python /eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py
('COLORTERM', 'gnome-terminal')
('DBUS_SESSION_BUS_ADDRESS', 'unix:abstract=/tmp/dbus-sgAQf9jF15,guid=95ee83c3b3510c530cb4ea8500000066')
('DEFAULTS_PATH', '/usr/share/gconf/gnome.default.path')
('DESKTOP_SESSION', 'gnome')
('DISPLAY', ':0.0')
('GDMSESSION', 'gnome')
('GDM_KEYBOARD_LAYOUT', 'us')
('GDM_LANG', 'en_US.utf8')
('GNOME_DESKTOP_SESSION_ID', 'this-is-deprecated')
('GNOME_KEYRING_CONTROL', '/tmp/keyring-JsqHSQ')
('GNOME_KEYRING_PID', '1799')
('GTK_MODULES', 'canberra-gtk-module')
('HOME', '/home/michaele')
('LANG', 'en_US.utf8')
('LOGNAME', 'michaele')
('MANDATORY_PATH', '/usr/share/gconf/gnome.mandatory.path')
('ORBIT_SOCKETDIR', '/tmp/orbit-michaele')
('PATH', '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games')
('PWD', '/home/michaele')
('SESSION_MANAGER', 'local/michaele-Dell-System-XPS-L702X:@/tmp/.ICE-unix/1818,unix/michaele-Dell-System-XPS-L702X:/tmp/.ICE-unix/1818')
('SHELL', '/bin/bash')
('SHLVL', '1')
('SSH_AGENT_PID', '1848')
('SSH_AUTH_SOCK', '/tmp/keyring-JsqHSQ/ssh')
('TERM', 'xterm')
('USER', 'michaele')
('USERNAME', 'michaele')
('WINDOWID', '67108892')
('WINDOWPATH', '7')
('XAUTHORITY', '/var/run/gdm/auth-for-michaele-cd81Hc/database')
('XDG_CONFIG_DIRS', '/etc/xdg/xdg-gnome:/etc/xdg')
('XDG_DATA_DIRS', '/usr/share/gnome:/usr/local/share/:/usr/share/')
('XDG_SESSION_COOKIE', '6b516b0ac1421896dc0de6dc00000009-1335548722.708677-1288196033')
('_', '/usr/bin/python')
<xml>
<version>2.6</version>
<executable>/usr/bin/python</executable>
<lib path="out">/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc</lib>
<lib path="ins">/usr/lib/python2.6</lib>
<lib path="ins">/usr/lib/python2.6/plat-linux2</lib>
<lib path="ins">/usr/lib/python2.6/lib-tk</lib>
<lib path="ins">/usr/lib/python2.6/lib-old</lib>
<lib path="ins">/usr/lib/python2.6/lib-dynload</lib>
<lib path="ins">/usr/local/lib/python2.6/dist-packages</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages/PIL</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages/gst-0.10</lib>
<lib path="ins">/usr/lib/pymodules/python2.6</lib>
<lib path="ins">/usr/lib/python2.6/dist-packages/gtk-2.0</lib>
<lib path="ins">/usr/lib/pymodules/python2.6/gtk-2.0</lib>
<forced_lib>__builtin__</forced_lib>
<forced_lib>__main__</forced_lib>
<forced_lib>_ast</forced_lib>
<forced_lib>_bisect</forced_lib>
<forced_lib>_codecs</forced_lib>
<forced_lib>_collections</forced_lib>
<forced_lib>_functools</forced_lib>
<forced_lib>_hashlib</forced_lib>
<forced_lib>_locale</forced_lib>
<forced_lib>_random</forced_lib>
<forced_lib>_socket</forced_lib>
<forced_lib>_sre</forced_lib>
<forced_lib>_ssl</forced_lib>
<forced_lib>_struct</forced_lib>
<forced_lib>_symtable</forced_lib>
<forced_lib>_warnings</forced_lib>
<forced_lib>_weakref</forced_lib>
<forced_lib>array</forced_lib>
<forced_lib>binascii</forced_lib>
<forced_lib>cPickle</forced_lib>
<forced_lib>cStringIO</forced_lib>
<forced_lib>errno</forced_lib>
<forced_lib>exceptions</forced_lib>
<forced_lib>fcntl</forced_lib>
<forced_lib>gc</forced_lib>
<forced_lib>grp</forced_lib>
<forced_lib>imp</forced_lib>
<forced_lib>itertools</forced_lib>
<forced_lib>marshal</forced_lib>
<forced_lib>math</forced_lib>
<forced_lib>operator</forced_lib>
<forced_lib>posix</forced_lib>
<forced_lib>pwd</forced_lib>
<forced_lib>select</forced_lib>
<forced_lib>signal</forced_lib>
<forced_lib>spwd</forced_lib>
<forced_lib>strop</forced_lib>
<forced_lib>sys</forced_lib>
<forced_lib>syslog</forced_lib>
<forced_lib>thread</forced_lib>
<forced_lib>time</forced_lib>
<forced_lib>unicodedata</forced_lib>
<forced_lib>xxsubtype</forced_lib>
<forced_lib>zipimport</forced_lib>
<forced_lib>zlib</forced_lib>
</xml>Traceback (most recent call last):
  File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 143, in <module>
    raise RuntimeError('Ok, this is so that it shows the output (ugly hack for some platforms, so that it releases the output).')
RuntimeError: Ok, this is so that it shows the output (ugly hack for some platforms, so that it releases the output).

當嘗試向日食添加Jython解釋器時,遇到了類似的問題,收到“從解釋器獲取信息時出錯”消息。 就我而言,我使用的是自己構建的Jython版本。

在根jython目錄中運行ant build(不帶任何選項)時,它將生成dist / jython-dev.jar。 該jar文件與您從jython網站下載的jar文件不同,因為它沒有捆綁jython所需的所有第三方jar。 ant生成的dist / bin / jython腳本將這些添加到類路徑中。

Pydev並不使用該腳本來運行Jython,它僅使用jar文件並假定它包含所需的一切。 為了獲取解釋器信息,Pydev運行如下命令:

/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java -Dpython.home=/Users/me/dev/projects/jython/dist -classpath /Users/me/dev/projects/jython/dist/jython-dev.jar org.python.util.jython /Users/me/dev/projects/Pydev/plugins/org.python.pydev/pysrc/interpreterInfo.py

您可以通過在jython根文件夾中運行以下命令來編譯捆綁所有要求的jython.jar文件:

ant jar-complete

這會將jython.jar放到dist文件夾中,該文件夾可以與Pydev正常工作。

必須說我以前從未見過那個:)

我可以想象的一些事情可以解決它:

  1. 嘗試更改:

    \\插件\\ org.python.pydev_2.5.0.2012040618 \\ PySrc \\ interpreterInfo.py

    更改:

    導入操作系統

    至:

    導入os.path

  2. 另一個猜測是,在Eclipse中時某些環境變量會有所不同...首先要檢查的是從與您進行打印相同的控制台啟動Eclipse(而不是直接從桌面啟動Eclipse)。

  3. 如果仍然無法解決問題,請執行以下操作:

    在interpreterInfo.py腳本的開頭(“ import os”之后)

    做:

    print('\\ n'.join(在os.environ.items()中為x排序(str(x))))

    然后嘗試配置解釋器並在日志中發布該日志。 然后,還從控制台運行interpreterInfo.py並將其也添加到帖子中(以查看環境是否存在差異)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM