I hate Python...

Ok, I have nothing against Python the language, but all the editors I’ve tried are just pure cra…

Now I’m using pydev for Eclipse, and it’s ok, but far from being good enough. I might as well write Python code in Notepad!

I’m used to writing Java using Eclipse, and it’s so very convenient… auto-import of libraries and classes, tag insight, auto completion etc. So basically, writing in Java (in Eclipse) makes me never have to look at the documentation since the IDE helps me write and gives me insight into methods etc.

But there is nothing like that for Python?

Also, I notice many projects have all the code in 1 .py file. That’s horrible! I’ve tried to split up my ongoing project into multiple .py files and it’s even more horrible, impossible to manage. If you want to rename a component you’ll have to search all the .py files where that component is used and replace the name. Needless to say Eclipse does that for you automatically, but only for Java.

I’m not tring to advocate the use of Java, all I want to do is get a proper, productive enviroment. Very tough to spend 90% of your time going through the docs to see if a method is supported by some object, and what the parameters are. And the docs aren’t the best for Panda3D.

Pydev is nothing but NotePad with syntax highlighting and errorchecking.
You’re definately a Windows user. On most Linux distro’s, the default “notepad” is equipped with syntax highlighting for python. In Windows there is a great program called pspad.

Problem is, not if you use third-party libraries. Same as for Pydev. If Panda3D would be rewritten for Java, same problem will occur.
If you wouldn’t use Panda3D, pydev will auto-complete etc. too.

NOT TRUE. It’s just that some programmers - when they write just a small game or so - find it more convenient to program it in 1 file.
My own Panda3D game is split up in multiple .py files, one per functionality. Just create your file called mymodule.py and on some other python file just type:
import mymodule
It’s just that simple.

Environment? You have one! Pydev is good enough to program a GREAT game.
Just letting the IDE do the work can hardly be called programming anymore.
Programming is: learning a language, and then creating your own application/game in it from scratch (maybe using some libraries), independent of the editor/IDE you use.
And, if you think the Panda3D docs are not good enough, feel free to add data, because it’s a wiki.

Personally I don’t really like those heavy development environments like Eclipse. Oh yes- these might be useful in some ways, but then programming gets hardly programming anymore.

And after all - Java is much higher-level than Python. Meaning, Java is slower and Python has more functionality. But, of course Python is not so well-provided with IDE’s, also because it’s lower level, and less people want uberhaupt an IDE for it. Or do you think there is also a heavy, full-of-loads-of-functions (like auto-complete and auto-import) IDE for Assembly language? I wouldn’t think so.

I guess the answer is ‘no’, there are no good enviroments for Python?

I have no idea if there are many - isn’t Pydev a good one then?

For this question I’m afraid I have to redirect you to a python forum.

Pydev has auto-completion too, but not for the Panda3D libraries.
The Panda3D libraries are mostly C++, that’s why.

I still have no clue what you don’t like about Pydev. It programs really well.

And, if you hate python so… You can create Panda3D games in C++ too.

Everyone’s got their favorite IDE. Some use Eclipse/pydev. Others use some other environment. Try searching the forums for “ide” or “editor”.

David

It’s not what you’re looking for, but you should try PyScripter or SPE.

I’m also missing the refactoring features of eclipse for Java. But the small time you’ll waste renaming the class yourself (if ever), is certainly less than the time you will save using this :
discourse.panda3d.org/viewtopic … 1826#11826

To make it short, I was looking for a way to modify the running code dynamically, and David helped to achieve this with any editor. Save the class file and all the existing instances will be replaced in the memory.

I don’t think it is so easy to do that in java.

I went through a lot of Python IDEs before deciding on WingIDE (wingware.com/). It’s pretty full featured and stable. The one feature I miss, and apparently I’m not alone, is the ability to refactor. This is a challenging feature given the dynamic nature of Python. The WingWare developers have stated that it’s planned for a future release.

WingIDE is a commercial product and they have a Personal Edition for $35. I’m using the Personal Edition and find it superior to all the alternatives. I use it on XP and Linux.They also provide free licenses to Open Source developers.

bml

SPE or PyScripter?

Thanks for heads up about pysccripter…looks like one to stick with for both features and design wize it looks very professional.

cheers
nl

Hey, does someone know about an IDE that has autocompletion for Panda’s API?

Yes, PyDev for Eclipse, but i really discourage it, because of the amount of data the autocomplete engine has to search in.
On my dual core 1.7, i had to wait more than 6 or 7 seconds sometimes.

Sorry for bringing up an old thread. @raytaller: can you tell me which PyDev project or builder settings I have to use for code completion to work? I tried everything (well, obvioulsy not everything) - even ‘libpanda’ as forced builtin lib - but no success.
And I’m wondering why it does take such a long waiting time in Eclipse because code completion in iPython works nearly real time on my good old Athlon XP 2500.

Thanks, Christof.

Here is the scoop Christof, pydev does auto complete panda3d on my system
i type pandac. (it gives me its modules) then PandaModules (which i can scroll down for) but inside it there is no NodePath class (i am just using it as example) because it gets imported there at import time - its not listed there statically for pydev to analyze. Its gets loaded at import time so if pydev cant tell what you imported - it imports c++ modules and adds stuff to the classes. Pydev cant read c++ libraries :slight_smile: - so the short answer pydev cant auto complete panda3d classes because of the way they are imported. There might be a way around that … its is an interesting problem i will look into it.

Thanks for your reply. There must be a way around it, since the iPython shell (which seems to be just some - even though amazing and pretty complex - python script) perfectly manages to get code completion to work.
Unfortunately there is no way I can find that out (I’m more of a ‘user’ type). I would greatly appreciate it if you or someone else would put some effort in it.
Regards, Christof.

:laughing: :laughing: :laughing: :laughing: :laughing:
PyDev is stupid then.
It’s this simple :

main=sys.modules['__main__']
mainDict=main.__dict__
for k in mainDict.keys():
    if k=='NodePath': # look for NodePath class
       className=mainDict[k].getClassType()
       print '========== CLASS : %s =========='%className
       class_dict=mainDict[k].__dict__
       for ck in class_dict.keys():
           print '==== FUNCTION : %s.%s ===='%(className,ck)
           print class_dict[ck].__doc__

Just be sure to capture the output.
Thus you will see some additional undocumented methods at all, since they’re added at runtime in pandac\libpandaModules.py, such as :
NodePath.getAncestry
NodePath.getNumDescendants
NodePath.id
NodePath.removeChildren
NodePath.showCS
NodePath.subdivideCollisions
etc

Treeform, is your IDE still around ? May I take a peek ?

PyDev is stupid, I guess. And I would easily stop using it if there were an appropriate alternative editor/IDE which supports working wih SVN. I think Eclipse’s SVN features are pretty neat (and I like having my editor and SVN client in one place).

I dont understand what you are asking:

It’s your An***IDE, you posted a screenshot there :
discourse.panda3d.org/viewtopic.php?t=3105
Are you still using it ? What’s the status ?

ynjh_jo, no that did not go any place regenerating the text was way too slow. I use pyDev as my IDE that is why i did not understand. That editor worked but the response time was horrible so i dropped it.

WingIDE is the best editor I have used. (my 2 cents).