-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathshow_versions.py
56 lines (48 loc) · 1.65 KB
/
show_versions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import os
import sys
import platform
import getopt
def print_versions(exit_on_error=False):
print(f"Machine: {platform.machine()}")
print(f"Python version: {sys.version}")
print(f"Python bitness: {platform.architecture()[0]}")
print(f"Python compiler: {platform.python_compiler()}")
try:
import gi
except ImportError as e:
print(f"PyGObject not available: {e}")
if exit_on_error:
sys.exit(1)
return
print(f"PyGObject version: {gi.__version__}")
try:
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
except ImportError as e:
print(f"GTK not available: {e}")
import ctypes
print("Last Windows error:", ctypes.get_last_error())
if exit_on_error:
sys.exit(1)
return
print(f"Gtk version: {Gtk.get_major_version()}.{Gtk.get_minor_version()}.{Gtk.get_micro_version()}")
if __name__ == "__main__":
try:
opts, args = getopt.getopt(sys.argv[1:], "hd:r", ["help", "dll-directory=", "required"])
except getopt.GetoptError as err:
print(str(err))
sys.exit(2)
exit_on_error = False
for opt, arg in opts:
if opt in ("-h", "--help"):
print(f"Usage: {os.path.basename(sys.argv[0])} [--required] [--add-path=dir]")
sys.exit()
elif opt in ("-d", "--dll-directory"):
os.add_dll_directory(arg)
elif opt in ("-r", "--required"):
exit_on_error = True
print("Environment PATH:")
print(os.environ['PATH'].split(os.pathsep))
print("\nPython DLL search path:")
print(sys.path)
print_versions(exit_on_error)