mikee805
mikee805

Reputation: 75

Error while installing Jython for PyDev

I have installed PyDev and Jython in eclipse before and I have never had an issue. However this time I am getting an error with either the manual or auto installation:

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'
<<

Running that same script with Jython or Python on the command line seems fine:

$ 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).

Also running from interactive console in eclipse with Python or Jython works i.e. :

Python:

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('/')
'/'

Environment info:

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)

Sorry for the long post but I do not know what is relevant. I have tried everything I can think of to get Jython working in PyDev to no avail. Any help would be greatly appreciated.

Thanks,

Mike

EDIT1: Adding response to Fabio

Thanks for all of the suggestions I apprecaite the help. But no go still.

  1. Resulted in this error:

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 "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 15, in ?
ImportError: no module named javaos
<<

Which makes little sense to me.

  1. Gave the same error I have been getting:

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 "/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. From eclipse:

    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): (no code object) at line 0 File "/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 17 print('\n'.join(sorted(str(x) for x in os.environ.items()))) ^ SyntaxError: invalid syntax <<

From console:

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).

Upvotes: 2

Views: 2216

Answers (2)

cjsimpson
cjsimpson

Reputation: 11

I ran into a somewhat similar problem getting a "Error getting info from interpreter" message when trying to add a Jython interpreter to eclipse. In my case I was using a version of Jython that I had built myself.

When you run the ant build (with no options) in the root jython directory, it will produce dist/jython-dev.jar. This jar file if different from the jar file that you download from the jython website in that it does not bundle all of the third party jars that jython needs. The dist/bin/jython script that ant generates adds these to the class path though.

Pydev doesn't use that script to run Jython though, it just uses the jar file and assumes it contains everything needed. To get the interpreter information Pydev runs a command like this:

/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

You can compile a jython.jar file that bundles all of the requirements by runnning the below in the jython root folder:

ant jar-complete

This will put jython.jar into the dist folder which should work fine with Pydev.

Upvotes: 1

Fabio Zadrozny
Fabio Zadrozny

Reputation: 25332

Must say I never saw that one before :)

Some things I can imagine may solve it:

  1. Try changing:

    \plugins\org.python.pydev_2.5.0.2012040618\PySrc\interpreterInfo.py

    Change:

    import os

    to:

    import os.path

  2. Another guess would be that some environment variables are different when inside Eclipse... The first thing to check is launching Eclipse from the same console you did those prints (instead of launching it directly from the desktop -- if that was the case).

  3. If that still does not work, please do the following:

    In the start of the interpreterInfo.py script (after the "import os")

    do:

    print('\n'.join(sorted(str(x) for x in os.environ.items())))

    then try to configure the interpreter and post that log in the post. Then, also run the interpreterInfo.py from the console and add it to the post too (to see if there's any difference in the environment).

Upvotes: 0

Related Questions