diagnose.py 5.2 KB

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