Here are some links that may possibly useful as a quickstart for the Poser 11 to Poser 12 leap, and the need to tweak PoserPython scripts so they conform with Python version 3.
1. The official 2to3 – Automated Python 2 to 3 code translation.
2. Futurize calls in 2to3 and uses it to do automatic conversion of Poser 2 to Poser 3…
The futurize script passes Python 2 code through all the appropriate fixers to turn it into valid Python 3 code, and then adds __future__ and future package imports to re-enable compatibility with Python 2.
3. Python-Modernize also calls in 2to3 and uses it to make…
a very thin wrapper around lib2to3 to utilize it to make Python 2 code more modern with the intention of eventually porting it over to Python 3.
What breaks?
* It seems that the command print is handled differently in Python 3 scripts. So are strings. The way that iterated lists are done also seem to have changed. There’s a comparison page here.
* Standard library Python ‘packages’ or ‘modules’, of the sort called in by a simple name placed at the top of some scripts, have been moved or renamed or lower-cased. There’s a list on which Tkinter is now tkinter, and SimpleDialog is now tkinter.simpledialog. Tkinter is only relevant for Windows users, as Apple bans it from the Mac. It’s used in PoserPython to make user interfaces for scripts. I don’t recognise any of the others.
* Not only will Tkinter scripts need to have their in-script Tkinter ‘module call’ lower-cased to read tkinter, but on Poser 12 we may also have to download the latest Python and “then copy the tkinter directory, and the tcl8.6 and tk8.6 directories to the runtime/python/lib directory” of Poser 12.
* Some ‘packages’ or ‘modules’, of the sort seen being called in at the top of some scripts, have been dropped altogether from Python 3. Canvas and user are the only ones that look vaguely familiar to me from my looking at various PoserPython scripts. I’m not a ‘write it from scratch’ coder, just a code-hacker and tweaker and grafter who can bash something together and test it until it works. Proper coders may have more to add on the practicalities of getting a broken script from Python 2 to 3 — and thus to Poser 12.
* Apparently you can’t mix tabs and spaces in scripts, in version 3.