SIL Converters Python Scripts not working

I cannot get any python scripts to work in SIL Converters. All I need is to use the ReverseString.py script that comes already packaged with the converters.

When I try to use the menu in the Clipboard EncConverter to “Add Converter”, choose “Python Script”, browse to ReverseString.py and click Apply, the EncConverter crashes.

When I try to instead choose “Python 3 Script”, I get one of a number of different error messages after selecting the python3 DLL path.

Here is one:

I tried to install a 32 bit version of python and use that dll, but I got this message instead:

Regarding the 1st error, if you installed Python 3.13, the “Python Script” converter type won’t work. You must use the “Python 3 Script” type. (I think the former only works w/ Python 2.7).

Regarding the 1st error msg, there is a difference between the x86 or Win32 version of SILConverters and the x64 version. If you install the x64 version, you have to use an x64 distribution of Python (or Perl, etc). So I’m guessing that you installed SILConverters x86 and so yes, that won’t work with a x64 distribution of Python.

Regarding the 2nd error msg, I’m not 100% sure, but take a look at this post: /t/sil-converter-support/8758
and make sure that you include the path to the Python313.dll file (as Steve found out there) in the Python 3 Script converter Setup tab. It won’t work if you browse for the Python3.dll, it must be the Python313.dll file.

In fact, even then, I couldn’t get the ReverseString.py to work, because it seems it was written to work with the ‘Python Script’ converter and the ‘Python 3 Script’ (and Python3xx) don’t support syntax like this (which is on line 17 of the Reverse.py script):
print b"result: %s" % repr(result)

if you edit the script file and put “()” around the parameters of the ‘print’ statements, then it works (for me). e.g.
print (b"result: %s" % repr(result))
print (u"sending: %s " % repr(ui))
print (u"result: %s" % repr(result))
print (“ok”)
print (u"unexpected result; expected %s" % repr(expected))