diagnose.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. #!/usr/bin/env python3
  2. import os
  3. import sys
  4. import tempfile
  5. def run():
  6. _path = os.getcwd()
  7. os.chdir(tempfile.gettempdir())
  8. print('------')
  9. print(f'os.name={os.name!r}')
  10. print('------')
  11. print(f'sys.platform={sys.platform!r}')
  12. print('------')
  13. print('sys.version:')
  14. print(sys.version)
  15. print('------')
  16. print('sys.prefix:')
  17. print(sys.prefix)
  18. print('------')
  19. print(f"sys.path={':'.join(sys.path)!r}")
  20. print('------')
  21. try:
  22. import numpy
  23. has_newnumpy = 1
  24. except ImportError as e:
  25. print('Failed to import new numpy:', e)
  26. has_newnumpy = 0
  27. try:
  28. from numpy.f2py import f2py2e
  29. has_f2py2e = 1
  30. except ImportError as e:
  31. print('Failed to import f2py2e:', e)
  32. has_f2py2e = 0
  33. try:
  34. import numpy.distutils
  35. has_numpy_distutils = 2
  36. except ImportError:
  37. try:
  38. import numpy_distutils
  39. has_numpy_distutils = 1
  40. except ImportError as e:
  41. print('Failed to import numpy_distutils:', e)
  42. has_numpy_distutils = 0
  43. if has_newnumpy:
  44. try:
  45. print(f'Found new numpy version {numpy.__version__!r} in {numpy.__file__}')
  46. except Exception as msg:
  47. print('error:', msg)
  48. print('------')
  49. if has_f2py2e:
  50. try:
  51. print('Found f2py2e version %r in %s' %
  52. (f2py2e.__version__.version, f2py2e.__file__))
  53. except Exception as msg:
  54. print('error:', msg)
  55. print('------')
  56. if has_numpy_distutils:
  57. try:
  58. if has_numpy_distutils == 2:
  59. print('Found numpy.distutils version %r in %r' % (
  60. numpy.distutils.__version__,
  61. numpy.distutils.__file__))
  62. else:
  63. print('Found numpy_distutils version %r in %r' % (
  64. numpy_distutils.numpy_distutils_version.numpy_distutils_version,
  65. numpy_distutils.__file__))
  66. print('------')
  67. except Exception as msg:
  68. print('error:', msg)
  69. print('------')
  70. try:
  71. if has_numpy_distutils == 1:
  72. print(
  73. 'Importing numpy_distutils.command.build_flib ...', end=' ')
  74. import numpy_distutils.command.build_flib as build_flib
  75. print('ok')
  76. print('------')
  77. try:
  78. print(
  79. 'Checking availability of supported Fortran compilers:')
  80. for compiler_class in build_flib.all_compilers:
  81. compiler_class(verbose=1).is_available()
  82. print('------')
  83. except Exception as msg:
  84. print('error:', msg)
  85. print('------')
  86. except Exception as msg:
  87. print(
  88. 'error:', msg, '(ignore it, build_flib is obsolete for numpy.distutils 0.2.2 and up)')
  89. print('------')
  90. try:
  91. if has_numpy_distutils == 2:
  92. print('Importing numpy.distutils.fcompiler ...', end=' ')
  93. import numpy.distutils.fcompiler as fcompiler
  94. else:
  95. print('Importing numpy_distutils.fcompiler ...', end=' ')
  96. import numpy_distutils.fcompiler as fcompiler
  97. print('ok')
  98. print('------')
  99. try:
  100. print('Checking availability of supported Fortran compilers:')
  101. fcompiler.show_fcompilers()
  102. print('------')
  103. except Exception as msg:
  104. print('error:', msg)
  105. print('------')
  106. except Exception as msg:
  107. print('error:', msg)
  108. print('------')
  109. try:
  110. if has_numpy_distutils == 2:
  111. print('Importing numpy.distutils.cpuinfo ...', end=' ')
  112. from numpy.distutils.cpuinfo import cpuinfo
  113. print('ok')
  114. print('------')
  115. else:
  116. try:
  117. print(
  118. 'Importing numpy_distutils.command.cpuinfo ...', end=' ')
  119. from numpy_distutils.command.cpuinfo import cpuinfo
  120. print('ok')
  121. print('------')
  122. except Exception as msg:
  123. print('error:', msg, '(ignore it)')
  124. print('Importing numpy_distutils.cpuinfo ...', end=' ')
  125. from numpy_distutils.cpuinfo import cpuinfo
  126. print('ok')
  127. print('------')
  128. cpu = cpuinfo()
  129. print('CPU information:', end=' ')
  130. for name in dir(cpuinfo):
  131. if name[0] == '_' and name[1] != '_' and getattr(cpu, name[1:])():
  132. print(name[1:], end=' ')
  133. print('------')
  134. except Exception as msg:
  135. print('error:', msg)
  136. print('------')
  137. os.chdir(_path)
  138. if __name__ == "__main__":
  139. run()