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