Update files in windows directory so it compiles under python3 (print

statements and except and raise).
This commit is contained in:
kulath
2016-08-22 15:48:17 +01:00
parent 5e459e4541
commit 6204bbb8b1
5 changed files with 208 additions and 208 deletions

View File

@ -34,83 +34,83 @@ explain_exposed = ''' *******************************************************
* to the operating system as they are in the environment
* path variable BEFORE the runtime directory.
* You should reorder the path variable to put your GTK
* runtime path before these other installations on the path'''
* runtime path before these other installations on the path'''
explain_safe = ''' ***************************************************************
* While there are other installations of GTK DLL's on the path,
* it should be safe as they are on the path AFTER the runtime
* directory. '''
* directory. '''
def RunExeCommand( app, args ):
cmd = app + ' ' + args
#print "Running: ", cmd
#print("Running: ", cmd)
stdin, stdout, stderr = os.popen3( cmd )
output = string.strip(stdout.read())
#print output
#print(output)
err = stderr.read()
if err:
print err
print(err)
return output
def CheckGtkInReg():
global gtkPathInRegistry, gtkVersionInRegistry, dllPathInRegistry, dllPathShort
print '\n==== Checking Registry for GTK ====='
print('\n==== Checking Registry for GTK =====')
try:
with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\GTK\\2.0') as key:
gtkVersionInRegistry = _winreg.QueryValueEx(key, 'Version')[0]
gtkPathInRegistry = _winreg.QueryValueEx(key, 'Path')[0]
dllPathInRegistry = _winreg.QueryValueEx(key, 'DllPath')[0]
print ' Version :', gtkVersionInRegistry
print ' Path :', gtkPathInRegistry
print ' DllPath :', dllPathInRegistry
except WindowsError, e:
print '\n GTK registry key not found in registry'
print ''' ********************************************************************
print(' Version :', gtkVersionInRegistry)
print(' Path :', gtkPathInRegistry)
print(' DllPath :', dllPathInRegistry)
except WindowsError as e:
print('\n GTK registry key not found in registry')
print(''' ********************************************************************
* This might not be an error, but means I don't know the directory to
* your preferred GTK installation.
* - try passing in your GTK installation path.\n'''
print '-' * 60
print usage
* your preferred GTK installation.
* - try passing in your GTK installation path.\n''')
print('-' * 60)
print(usage)
sys.exit(0)
def WorkOutShortDosPath():
global dllPathShort
print '\n==== Use win32Api to query short path name for GTK ====='
print('\n==== Use win32Api to query short path name for GTK =====')
try:
import win32api
dllPathShort = win32api.GetShortPathName(dllPathInRegistry)
print ' DllPath8.3:', dllPathShort
print(' DllPath8.3:', dllPathShort)
except ImportError:
print ' **Cant query short path name, Win32Api not installed'
print ' install from http://python.net/crew/mhammond/win32/'
print ' if you want this function to work'
print(' **Cant query short path name, Win32Api not installed')
print(' install from http://python.net/crew/mhammond/win32/')
print(' if you want this function to work')
def FindLibsWithCtypes():
# use ctypes to check where windows finds it's DLL's
print '\n==== Use ctypes to find dlls ===='
def FindLibsWithCtypes():
# use ctypes to check where windows finds it's DLL's
print('\n==== Use ctypes to find dlls ====')
other_paths = []
for dll in testdlls:
dllpathvalid = False
cpath = find_library(dll)
if cpath:
#print cpath
#print(cpath)
if cpath == os.path.join(dllPathInRegistry, dll) \
or cpath == os.path.join(dllPathShort, dll):
dllpathvalid = True
if not dllpathvalid:
pp = os.path.dirname(cpath)
if pp not in other_paths:
other_paths.append(pp)
else:
print " ERROR:... ctypes failed to find %s" % dll
print(" ERROR:... ctypes failed to find %s" % dll)
if other_paths:
for pth in other_paths:
print " ERROR: ctypes loaded some gtk dll's from %s" % pth
print(" ERROR: ctypes loaded some gtk dll's from %s" % pth)
else:
print " OK ... ctypes found dll's in %s" % os.path.dirname(cpath)
print(" OK ... ctypes found dll's in %s" % os.path.dirname(cpath))
def ScanDependencyFileForErrors(fname):
fin = open(fname, 'r')
lines = fin.readlines()
@ -135,36 +135,36 @@ def ScanDependencyFileForErrors(fname):
if dirname.startswith(os.path.join(sysroot, 'winsxs').lower()) \
or dirname.startswith(os.path.join(sys.prefix, 'lib\site-packages\gtk-2.0').lower()):
OK = True
for pth in acceptablePaths:
if dirname == pth.lower():
OK = True
if 'MSVCR90.DLL' in filename:
if parts[0] == 'Error':
runtimedlls[filename] = "Error dll not found"
else:
runtimedlls[filename] = parts[16]
if OK == False:
if parts[0] == 'Error':
print " %s \tError dll not found" %( filename)
print(" %s \tError dll not found" %( filename))
else:
print " ERROR: %s \tVersion %s" %( filename, parts[16])
print(" ERROR: %s \tVersion %s" %( filename, parts[16]))
for rtdll in runtimedlls:
if runtimedlls[rtdll].startswith("Error"):
print '\n ERROR: MS runtime %s not found'%rtdll
print('\n ERROR: MS runtime %s not found'%rtdll)
else:
print '\n MS runtime Version %s loaded from' % runtimedlls[rtdll]
print " %s" %rtdll
print
print('\n MS runtime Version %s loaded from' % runtimedlls[rtdll])
print(" %s" %rtdll)
print()
def CheckWithDependencyWalker():
print '\n==== Checking with Dependency Walker ===='
print ' Please be patient takes some time'
print('\n==== Checking with Dependency Walker ====')
print(' Please be patient takes some time')
exe = os.path.join(scriptpath, 'depends.exe')
fout = os.path.join(scriptpath, 'depres.txt')
f2check = [
f2check = [
os.path.join(sys.prefix, 'Lib/site-packages/gtk-2.0/gtk/_Gtk.pyd' ),
os.path.join(sys.prefix, 'Lib/site-packages/gtk-2.0/gobject/_GObject.pyd' ),
os.path.join(sys.prefix, 'Lib/site-packages/gtk-2.0/pangocairo.pyd' ),
@ -175,28 +175,28 @@ def CheckWithDependencyWalker():
#delete the output file before running command
try:
os.remove(fout)
except WindowsError, e:
except WindowsError as e:
pass
print ' Testing file %s' % ftest
print(' Testing file %s' % ftest)
out = RunExeCommand(exe, '/c /f1 /ot "%s" "%s"' % (fout, ftest) )
if os.path.isfile(fout):
ScanDependencyFileForErrors(fout)
else:
print " ERROR: file %d does not exist", ftest
print(" ERROR: file %d does not exist", ftest)
else:
print ' Cannot check with dependency walker, not installed in local directory'
print ' get dependency walker from http://www.dependencywalker.com/'
print ' and unzip into this directory for it to work.'
def CheckPathForOtherGtkInstalls():
print '\n====Checking environment path for other gtk installations===='
print(' Cannot check with dependency walker, not installed in local directory')
print(' get dependency walker from http://www.dependencywalker.com/')
print(' and unzip into this directory for it to work.')
def CheckPathForOtherGtkInstalls():
print('\n====Checking environment path for other gtk installations====')
ePath = os.environ['path']
dirs = ePath.split(';')
gtkpth_idx = 9999
other_paths = []
explain_level = 0
for i, d in enumerate(dirs):
#print '==%s==' %d
#print('==%s==' %d)
if d == gtkPathInRegistry or d == dllPathInRegistry\
or d == dllPathShort:
gtkpth_idx = i
@ -204,26 +204,26 @@ def CheckPathForOtherGtkInstalls():
for fname in testdlls:
f = os.path.join(d, fname)
if os.path.isfile( f ):
#print ' Found Erronous gtk DLL %s' % f
#print(' Found Erronous gtk DLL %s' % f)
if d not in other_paths:
other_paths.append(d)
if i < gtkpth_idx: # path appears BEFORE runtime path
print ' ERROR: %s should not appear before runtime path' % d
print(' ERROR: %s should not appear before runtime path' % d)
explain_level = 2
else:
print ' FOUND: %s, Probably OK as appears AFTER runtime path' % d
print(' FOUND: %s, Probably OK as appears AFTER runtime path' % d)
if explain_level <= 1:
explain_level = 1
if gtkpth_idx == 9999:
print '\n ERROR: Runtime directory not on enviroment path'
print " ** Runtime needs to be on path to load DLL's from\n"
print('\n ERROR: Runtime directory not on enviroment path')
print(" ** Runtime needs to be on path to load DLL's from\n")
if explain_level == 2:
print explain_exposed
print(explain_exposed)
elif explain_level == 1:
print explain_safe
print(explain_safe)
if len(other_paths) == 0:
print ' No other gtk installatons found\n'
print(' No other gtk installatons found\n')
# ==== report what python thinks it's using =====
MIN_PYTHON_VER = (2,5,1)
UNTESTED_PYTHON_VER = (3,0,0)
@ -241,45 +241,45 @@ MIN_CAIRO_VER = (1,2,6)
UNTESTED_CAIRO_VER = (1,4,13)
def PrintFailedImport(appl, minVersion, result):
print appl,
print 'version %d.%d.%d or above.....\t' % minVersion ,
print result
print(appl,)
print('version %d.%d.%d or above.....\t' % minVersion ,)
print(result)
def PrintVersionResult(appl, minVersion, actualVersion, untestedVersion):
print appl,
print 'version %d.%d.%d or above.....\t' % minVersion ,
print 'found %d.%d.%d' % actualVersion ,
print(appl,)
print('version %d.%d.%d or above.....\t' % minVersion ,)
print('found %d.%d.%d' % actualVersion ,)
if minVersion <= actualVersion < untestedVersion:
print '...OK'
print('...OK')
elif actualVersion >= untestedVersion:
print '...UNTESTED VERSION'
print('...UNTESTED VERSION')
else:
print '...FAILED'
print('...FAILED')
def Import_pyGtkIntoPython():
print '\n==== Test import into python ===='
print('\n==== Test import into python ====')
#py_str = 'found %d.%d.%d' % sys.version_info[:3]
PrintVersionResult(' Python ', MIN_PYTHON_VER, sys.version_info[:3], UNTESTED_PYTHON_VER)
# Test the GTK version
try:
import gtk
PrintVersionResult(' GTK+ ', MIN_GTK_VER, Gtk.gtk_version, UNTESTED_GTK_VER )
#test the pyGTK version (which is in the gtk namespace)
PrintVersionResult(' pyGTK ', MIN_PYGTK_VER, Gtk.pygtk_version, UNTESTED_PYGTK_VER )
except ImportError:
PrintFailedImport(' GTK+ ', MIN_GTK_VER, NOT_FOUND_STR)
PrintFailedImport(' pyGTK ', MIN_PYGTK_VER, 'Cannot test, ...GTK+ missing')
#test the gobject version
try:
import gobject
PrintVersionResult(' gobject', MIN_GOBJECT_VER, GObject.pygobject_version, UNTESTED_GOBJECT_VER)
except ImportError:
PrintFailedImport(' gobject', MIN_GOBJECT_VER, NOT_FOUND_STR)
@ -288,18 +288,18 @@ def Import_pyGtkIntoPython():
try:
import cairo
PrintVersionResult(' cairo ', MIN_CAIRO_VER, cairo.version_info, UNTESTED_CAIRO_VER )
except ImportError:
PrintFailedImport(' cairo ', MIN_CAIRO_VER, NOT_FOUND_STR)
#test for glade
print '\n==== See if libglade installed ===='
print('\n==== See if libglade installed ====')
try:
import Gtk.glade
print ' Glade tesing import of libglade .......\tOK\n'
except ImportError, e:
print ' Glade importError: %s\n' % e
print(' Glade tesing import of libglade .......\tOK\n')
except ImportError as e:
print(' Glade importError: %s\n' % e)
if __name__ == '__main__':
usage = '''Check for common problems in GTK/pyGTK installation.
@ -308,7 +308,7 @@ Usage:
Arguments:
gtkPath Path to your GTK installation directory (not the bin dir)
Options:
None
''' %(os.path.basename(__file__) )
@ -325,38 +325,38 @@ Options:
for o, a in opts:
if o in ("-h", "--help"):
print usage
print(usage)
sys.exit(0)
if len(args) > 1:
raise getopt.GetoptError, '\nERROR: Too many arguments'
raise getopt.GetoptError('\nERROR: Too many arguments')
for arg in args:
if os.path.isdir(arg):
gtkPath = arg
else:
raise getopt.GetoptError, '\nERROR: Not a valid GTK path %s' % arg
except getopt.GetoptError, msg:
print msg
print '\n %s' % usage
raise getopt.GetoptError('\nERROR: Not a valid GTK path %s' % arg)
except getopt.GetoptError as msg:
print(msg)
print('\n %s' % usage)
sys.exit(2)
import platform
winver = platform.win32_ver()
if len(winver) == 4:
print '''\n==== platform.win32_ver() reports ====
print('''\n==== platform.win32_ver() reports ====
Operating System: %s
Version : %s
Service Pack : %s
OS type : %s''' % winver
OS type : %s''' % winver)
else:
print winver
print(winver)
if gtkPath:
gtkPathInRegistry = gtkPath
dllPathInRegistry = os.path.join(gtkPath, 'bin')
print ' Using %s as GTK install path' % gtkPathInRegistry
print ' Using %s as GTK dll path' % dllPathInRegistry
print(' Using %s as GTK install path' % gtkPathInRegistry)
print(' Using %s as GTK dll path' % dllPathInRegistry)
else:
CheckGtkInReg()
@ -364,6 +364,6 @@ Options:
FindLibsWithCtypes()
CheckPathForOtherGtkInstalls()
Import_pyGtkIntoPython()
CheckWithDependencyWalker()