Thursday, November 07, 2013

PyDev 3.0!

PyDev 3.0 has just been released.

This is the first version which breaks compatibility with older Eclipse and Java versions, so, in order to run it requires Eclipse 3.7 onwards and Java 7 (for older versions, keep using PyDev 2.x) -- check LiClipse (http://brainwy.github.io/liclipse/), if you want a hassle free install where things should 'just work'.

This release has 2 main improvements: usability improvements related to configuring an interpreter and several enhancements in the interactive console.

On the interpreter configuration side, there were several improvements, but I believe the major change is that when the files related to the interpreter are changed in the filesystem (i.e.: when pip-installing a library for instance), PyDev will automatically get that the interpreter configuration needs to be updated (previously a manual step was required in order to add that path to the PyDev interpreter configuration). This was the most voted issue on the tracker and I believe one of the sources of greater frustration for PyDev users -- and it's finally solved! (which for me is the cherry in this release and warrants the newly-acquired 3.0 status!)

As for the interactive console, it has many noteworthy enhancements (and more enhancements are expected in the upcoming versions):

1. The interactive console can now execute in debug mode. By enabling this feature in the preferences, it's possible to place breakpoints in code, execute some code in the interactive console and stop at that breakpoint (which is really nice).

2. User Module Deleter (UMD): By enabling UMD in the preferences (i.e.: using runfile instead of execfile to run a python module), dependencies imported when executing some code are reimported (so, changes in files are automatically gotten without requiring manual reload() calls).

3. IPython 1.0 is now supported. Also, %edit will open the file in the PyDev editor and %gui customizes the gui event loop integration (i.e.: %gui wx to enable wxPython backend).

More details on the interactive console can be seen at: http://pydev.org/manual_adv_interactive_console.html

Other features have also been added, including better handling of numpy arrays in the debugger, right-clicking a variable in the debugger > pretty print to pretty-print it, persistent history in the interactive console -- besides some important fixes.

The last thing is that LiClipse (http://brainwy.github.io/liclipse/) has also been released with the latest changes in PyDev 3.0 and now also supports Mako Templates and Dart (besides the languages it already supported, such as Django Templates, Javascript, HTML, C/C++, etc.)

30 comments:

Unknown said...

Hi,

- Mac OSX Mavericks
- java version "1.6.0_65"
- Eclipse Juno Service Release 2

I did the upgrade as proposed by Eclipse before reading this article. Eclipse didn't warn me about this incompatibility during the upgrade process.
All is broken now. Searching for an answer, I found this blog post that explains the crash.

How can I reinstall a 2.x version of Pydev ? I'm not an Eclipse guru and the Eclipse market place does not let me choose a particular version of Pydev, and enforces the latest one event if Eclipse / Java versions are not supported.

Many thanks

Fabio Zadrozny said...

Hi Gilles,

PyDev now requires Java 7. You're using java 6, so, the simplest solution is simply upgrading to Java 7.

If you want a hassle free/native installation with all requisites (including a java 7 vm bundled with it), use LiClipse (http://brainwy.github.io/liclipse/).


The Eclipse update can really be a pain sometimes (it should definitely have warned you that PyDev requires java 7) -- it's still possible to revert to a previous install though if you go to the install new software > what's already installed > installation history > select previous config and revert to it, but from personal experience that can be a bit flimsy sometimes.

Unknown said...

Hi Fabio,

And thank you for your fast and professional reply.

I'm very unlucky. I tried to revert to the previous installation (Pydev 2.8.2) with the "select previous config" feature of Eclipse, but Eclipse issues an error message saying it can't find files of Pydev 3 (That are in the plugins folder !!!???)

So I installed the LilClipse 0.9 for 64 bits OSX. But quickly after showing the splash screen, it stops with the following message in the log file starting with :

java.lang.RuntimeException: Application "com.brainwy.liclipse.rcp.application" could not be found in the registry. The applications available are: org.eclipse.ant.core.antRunner, ...

I can provide you with the full looooong log file by mail if you think I do not provide enough information.

Note that I have lots of bug everywhere since I upgraded to the brand new Mavericks OSX, and I'm in a hurry to have the bugfixes upgrade.

Fabio Zadrozny said...

Hi Gilles,

I'm really sorry about that. I've been able to reproduce this issue in a mac box with an older java (the bundled jre had an issue during the bundling).

I've just removed the .dmg from the downloads and will re-upload it again soon (hopefully within the next hour).

Please keep an eye on the google drive upload at:

https://drive.google.com/folderview?id=0BwwQN8QrgsRpRGNZTmc3bmZZM3M&usp=sharing&tid=0BwwQN8QrgsRpLVlDeHRNemw3S1E

when the .dmg file appears again it should be ok to get and use 'out of the box'.

Sorry about the issue.

Fabio Zadrozny said...

Hi Gilles,

Actually, the problem is a bit worse than I thought (the situation on java 7 on mac os seems a bit weird).

So, for now I've removed the .dmg on version 0.9.0, but you can get version 0.8.0 and it should work properly for now (until I can properly discover why things are not working well with 0.9.0).

Cheers,

Fabio

Unknown said...

Hi Fabio,

And thanks again for this fast and professional feedback.

I'm actually conducting a Python training sessions and a visual debugger with object inspection is essential for demos and exercises. So I rolled back the full eclipse bundle from a backup for today.

I'll have a look at LilClipse 0.8 in a few days and give you feedback.

BTW, googling about Java 7 on OSX yields a lot of issue reports, notably with applications that are expecting Java 6.

Cheers

Fabio Zadrozny said...

Hi Gilles,

Ok, I found out what was the issue:

When upgrading Eclipse from 4.3.0 to 4.3.1, the way I specified the vm which was ../../../jre now needs to be ../../../jre/lib/server/libjvm.dylib -- unfortunately it took me a long time to realize that as most of the threads I found talked about having a corrupt vm, but this wasn't the case :(

Anyways, I've just fixed that and I'm in the process of uploading a new 0.9.0 for Mac, so, it should be available shortly -- just the time it takes for google drive to upload the file :)

Jakob Malm said...

Looking forward tio trying the new interactive console! Thanks!

Unknown said...

Congratulations Fabio !

The MacOSX version works perfectly as expected now !
Great job !

Unknown said...

I can confirm that Eclipse does not notify you that the plugin requires Java 7 (Ubuntu/Indigo). Switching to Java 7 does fix the problem, though I had to close all my open editors. Also meant I had to switch from JRockit, which doesn't have a Java 7 version.

Really digging the interactive console though (I had never gotten any Python console to work in PyDev previously). Can't wait to see how it does in debugging!

Fabio Zadrozny said...

Hi Ryan,

Yes, the situation with the latest PyDev requiring java 7 and Eclipse not giving a proper warning when it's not available is really a bit of a nuisance...

I was hoping java 7 would be more pervasive at this point given the number of java security issues with older vms and java 7 being from 2011 already, but it seems a number of people are hitting the issue of not having java 7 installed...

On the good side, there's now an up-to date PyDev standalone (LiClipse) with all requisites builtin :)

Michael Bartz said...

I tried to enter a ticket on the PyDev tracker with no success.

PyDev 3.0 will not install properly on Mac OS X 10.9


Tried installing PyDev 3.0 from the update site with Eclipse 4.3.1. I double checked that I have Java 7 release 50 before I started. The install "worked" in the sense that I can see the package in the plug-in directory, but everything else does not work. I cannot find the PyDev Perspective and it does not display in the Preferences.

Fabio Zadrozny said...

Hi Michael,

Which error you had entering a ticket?

The error you're reporting is exactly the problem that happens when not using java 7...

Note that it's possible you have java 7 installed but are still using another version of java (as in the report https://sw-brainwy.rhcloud.com/tracker/PyDev/242)

Please double check in about > installation details > configuration which java version is being used.

Anonymous said...

I can't get it to work on Ubuntu. I'm using Java version 7 (java -version says 1.7.0_25. Same for javac). The window->preferences doesn't add a pydev menu item.

Eclipse installation details also says java.version=1.7.0_25. What is wrong?

Fabio Zadrozny said...

Really strange... if you're using java 7 there should be no reason for it to become disabled.

Some things you can check:

1. Did it download the contents properly to eclipse/plugins and eclipse/features?

2. Does something appear in your error log?

3. In help > about > installation details > plugins, do the pydev plugins appear?

4. Double-check which vm is being used in help > about > installation details > configuration to make sure it's the vm you're expecting.

Tauana said...

Hi! I just installed Eclipse to use Python but I cannot see the PyDev option on the Preferences menu. I already know it is not using the current version of Java I have (7u51), it is using the 1.6.0_65. But I just cannot figure it out how to change this. I tried adding a line in the eclipse.ini file (-vm
/System/Library/Java/JavaVirtualMachines/1.7.0u51/Contents/Home/), but I get an error saying that there is not such file inside JavaVirtualMachines - and indeed there is nothing there… Could you please help me to change this?

Fabio Zadrozny said...

Hi Tauana,

Sure... to fix that follow the instructions on http://pydev.org/download.html (or use LiClipse which is pre-configured with all requirements).

Anonymous said...

This really sucks! I auto-updated PyDev in Eclipse 3.8 running on Debian Wheezy to fix some issue with Python GIR...and now everything is broken! Revert configuration doesn't work neither! I'm frustrated! More hours to spend to get it working again! Sucks!

Fabio Zadrozny said...

Hi anonymous,

Sorry about that -- I know Eclipse isn't the easiest when it comes to managing updates and uninstalls (which is one of the reasons I created LiClipse which provides a working install with PyDev bundled out of the box).

Anonymous said...

I'm want PyDev to create Grinder(Jython) scripts on Eclipse 4.5 with the Grinderstone plugin(grider plugin for Eclipse ).

Grinder 3.11 supports java 1.6 ? So I'm unable to install PyDev on Eclipse , as PyDev has support only for java 1.7 .

any idea how this can be fixed ?

Fabio Zadrozny said...

Well, Java has a pretty good backward compatibility, so, my guess is that if it supports java 6, java 7 will also be able to run it...

Fabio Zadrozny said...

Now, I took a look at the grinder plugin and it appears it's actually unsupported (it's last release was with Eclipse 3.6, so, long time ago), so, if it doesn't work, I guess someone would have to revive it -- if only to fix the compilation errors it probably has with the latest version of PyDev... (java 6/7 is probably not an issue, but binary compatibility is no guaranteed as PyDev goes forward).

Anonymous said...

@ Fabio Zadrozny - I'm pretty new to Grinder tho, but when I tried to invoke the TCPProxy with java 1.7, it throws some errors , but it works fine with java 1.6.

Fabio Zadrozny said...

Unfortunately I can't help you there... what I know is that downgrading PyDev to java 6 is not an option... however, you can use the last version which worked with it (which is the latest PyDev 2.x version), although it's quite an old version at this time ... (but so is the grinder plugin).

Anonymous said...

can you tell me which PyDev 2.x version that I can use which has support for java 1.6 ?

Anonymous said...

can you tell me which PyDev 2.x version that I can use which has support for java 1.6 ?

Fabio Zadrozny said...

The latest in the 2.x series was PyDev 2.8.2.

Anonymous said...

Thanks Fabio - I downloaded the v2.8.2. Copied the plugins and features to respective Eclipse folders and restarted the Eclipse. But still I get the same error "No editor descriptor for id org.python.pydev.editor.PythonEditor",

is this something to do with the Eclipse version Mars (4.5) I use ? if yes , can you point me to the correct version.

Appreciate your guidance .

Fabio Zadrozny said...

Hi Chandu,

I think this is not the best place for this discussion.

Please create a request at https://sw-brainwy.rhcloud.com/tracker/PyDev/ so that I can give you a better support there.

Anonymous said...

Sure and I raised a ticket there :

#PyDev-440: PyDev v2.8.2 does not support Eclipse 4.5

Chandu