So, I'm trying to get nifscripts to work with blender 2.49b on a Mac. I suspect there may be an issue with the installed versions of python, but for the life of me I can't suss it out.
So, when I start blender from the command line, I see:
Compiled with Python version 2.5.6. Checking for installed Python... got it!
So far so good. Running a system report generates expected output:
Paths: /Applications/blender.app/Contents/MacOS/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload /Library/Python/2.5/site-packages /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/PyObjC /Applications/blender.app/Contents/MacOS/.blender/scripts /Applications/blender.app/Contents/MacOS/.blender/scripts/bpymodules
So, it seems to be using the same python it was built off of. However, when I try to run the
nif_common.py script, I start getting syntax errors. The first one seemed to involve the
with... as f keyword, which I resolved by using the more traditional
f = syntax.
However, now I get the following:
Traceback (most recent call last): File "nif_common.py", line 91, in <module> File "/Applications/blender.app/Contents/MacOS/.blender/scripts/bpymodules/pyffi/formats/nif/__init__.py", line 3277 return b'' ^ SyntaxError: invalid syntax
I fail to see the invalid syntax; this scripts uses that form several times, and only the last does it throw an error.
Line 91 of
from pyffi.formats.nif import NifFormat
__init__.py file contains at line 3277:
def _get_string(self, offset): """A wrapper around string_palette.palette.get_string. Used by get_node_name etc. Returns the string at given offset.""" if offset == -1: return b'' if not self.string_palette: return b''</pre>
Now, my familiarity with python is minimal, so I'm not sure whether the offending
'' does anything or not. But I can't see how invalid syntax would end up in established code like this...