Python version

I already have Python installed. Its the version I need to use on my computer.

When I install Panda3D I get…

Panda3D Setup

Python add-on installers use a registry key to locate the Python directory. The registry key is already pointing to a copy of Python. Do you want to change the registry key to point to Panda’s copy?

Yes No

Wow, thats of no help to me at all. It doesn’t tell me what version Python it wants to use. It also doesn’t tell me what key it wants to change, so I can reset it later manually.

I don’t understand why Panda needs to use its own Python version. What if every Python based program required its own version and required that special registry value to be set?

So can I tell the installer, NO don’t touch my friggin Python registry setting and be alright, or is it going to give me fits later? What is the minimum Python version required? Is this Panda Python an altered version?

Also, I get a bunch of “filename is incorrect case” during installation. Is this normal?

Thanks,
Duane Marshall
Powermad Productions

Yeah i also complained about this. The python used now unaltered 2.5 (i believe historically it was altered) and if you tell it not to reset your python version registry. You probably would have to use ppython to get to the panda’s python or stick a .pth or copy library folders to proper place. I use just ppython for panda3d stuff. The reason you have this problem is that you are using windows - operating systems without the dll hell problem don’t have to suffer.

And yes practically every program on windows has to bring its own python so will yours.

No clue about filenames…

This is why panda ships with its own version of python and/or you can’t use a different version:
C++ libraries with python wrappers are linked to a python library. Linking to python libraries means also you need to link them to a specific version of python, since python changes its libraries every version. Panda3D’s libraries are compiled against python 2.5 – if you want to use a different version of python, you could install python 2.4 and compile Panda3D yourself.

Thanks for the replies.

I am using 2.5.2 Python already and I didn’t allow Panda to modify the registry setting.

Apparently that causes problems because I can’t test run the Asteroids demo.

I’m not much of a programmer (yet). I thought I could install and run without issue in order to test free models I make. While I do not use Blender primarily, I need it for several things. I don’t want to break Blender script functionality while trying to get Panda to run.

I probably could reinstall Panda and allow the system to use that path for Python since they both seem to be 2.5.2. Reinstall Python if that messes up Blender.

Can’t future versions of Panda use its own Python without breaking the currently installed version?

Panda3D does have one executable to ease your pain: ppython.
Run ppython.exe instead of python.exe and panda’s python will be used for the examples. That way you can use python.exe for your normal python apps, while you can use ppython.exe for your panda apps. But, I think you do need to modify the start menu items to make the samples work from the start menu.

I changed the Start menu idem to use ppython instead

D:\GameDev\Panda3D\python\ppython.exe -E Tut-Asteroids.py

It tries to start but fails.

I execute a command prompt from the Panda\Python folder and run

ppython ..\samples\asteroids\tut-asteroids.py

and get…

DirectStart: Starting the game.
Warning: DirectNotify: category 'Interval' already exists
Known pipe types:
  wglGraphicsPipe
(all display modules loaded.)
:util(warning): Adjusting global clock's real time by 5.87697e-006 seconds.
:express(warning): Filename is incorrect case: /d/GameDev/Panda3D/samples/astero
ids/models/plane.egg.pz instead of /d/GameDev/Panda3D/samples/Asteroids/models/p
lane.egg.pz
:express(warning): Filename is incorrect case: /d/GameDev/Panda3D/samples/astero
ids/models/plane.egg.pz instead of /d/GameDev/Panda3D/samples/Asteroids/models/p
lane.egg.pz
:express(warning): Filename is incorrect case: /d/GameDev/Panda3D/samples/astero
ids/models/plane.egg.pz instead of /d/GameDev/Panda3D/samples/Asteroids/models/p
lane.egg.pz
:loader(error): Couldn't load file models/plane.egg: not found on model path (cu
rrently: "/d/GameDev/Panda3D/samples/asteroids;/d/GameDev/Panda3D/etc/..;/d/Game
Dev/Panda3D/etc/../models")
Traceback (most recent call last):
  File "..\samples\asteroids\tut-asteroids.py", line 382, in <module>
    w = World()
  File "..\samples\asteroids\tut-asteroids.py", line 91, in __init__
    transparency = False) #Load the background starfield
  File "..\samples\asteroids\tut-asteroids.py", line 52, in loadObject
    obj.reparentTo(camera)              #Everything is parented to the camera so

AttributeError: 'NoneType' object has no attribute 'reparentTo'

It looks like its trying to use the filenames that were installed incorrectly cased by the installed. Those are warnings , not errors, so that should not matter. I don’t know why Panda is concerned about filename case anyway.

I really don’t want to rant, I’ll try Panda again in the future. Thanks.

EDIT: I changed the my command line to use \Asteroids\ in upper case. I have the demo running now. But this causes me more worry. Again, why is Panda concerning itself with filename case? No other program I have used cares about DOS case and its just problematic to use it.

Panda3d is a cross platform tool. Many platforms are case sensitive and so is python and so is C. Being case sensitive meaning many people will be able to run panda3d on their system not just windows. Also panda3d uses unix “/” type slashes for its path separators - this is done on all systems.

You can disable case sensitivity - but i highly discourage it - then you will make it impossible to run your stuff on my system, mac’s and and all other systems.

in your your config file panda3d.org/manual/index.php/Configuring_Panda

How come using ‘tut-asteroids.py’ instead of ‘Tut-Asteroids.py’ in the command line didn’t cause an issue?

that is python the “root file” the one that is giving to python first i guess can be case insensitive as you found out while all the files that it imports mush be case sensitive!

The problem with the directory is that it was reading:

path-to-file + local-path-to-file

path-to-file was the wrong case. It was not reading path-to-file + your-python-file.

Also when you run it off the command line it asks windows to give you the correct path not in the other case you gave it?

I might be wrong i have no clue how windows work because of its inconsistencies.