-
-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Closed
Description
f2py fails on VM that is not configured for multiple CPUs
File "...\numpy\distutils\misc_util.py" (line 99, function get_num_build_jobs) assumes that multiprocessing multiprocessing.cpu_count will always return a number. At least on the VM I use to do windows builds, I get an exception, as below.
Solution is a patch to put the call in a try/except block and recover:
try:
cpu_count = len(os.sched_getaffinity(0))
except AttributeError:
cpu_count = multiprocessing.cpu_count()
to
try:
cpu_count = len(os.sched_getaffinity(0))
except AttributeError:
try:
cpu_count = multiprocessing.cpu_count()
except NotImplementedError:
cpu_count = 1
Error message:
Traceback (most recent call last):
File "C:\Users\toby\miniconda2-64\Scripts\f2py.py", line 28, in <module>
main()
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\f2py\f2py2e.py", line 648, in main
run_compile()
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\f2py\f2py2e.py", line 633, in run_compile
setup(ext_modules=[ext])
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\distutils\core.py", line 169, in setup
return old_setup(**new_attr)
File "C:\Users\toby\miniconda2-64\lib\distutils\core.py", line 151, in setup
dist.run_commands()
File "C:\Users\toby\miniconda2-64\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Users\toby\miniconda2-64\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\distutils\command\build.py", line 47, in run
old_build.run(self)
File "C:\Users\toby\miniconda2-64\lib\distutils\command\build.py", line 127, in run
self.run_command(cmd_name)
File "C:\Users\toby\miniconda2-64\lib\distutils\cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "C:\Users\toby\miniconda2-64\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\distutils\command\build_ext.py", line 262, in run
self.build_extensions()
File "C:\Users\toby\miniconda2-64\lib\distutils\command\build_ext.py", line 449, in build_extensions
self.build_extension(ext)
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\distutils\command\build_ext.py", line 380, in build_extension
**kws)
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\distutils\ccompiler.py", line 246, in CCompiler_compile
jobs = get_num_build_jobs()
File "C:\Users\toby\miniconda2-64\lib\site-packages\numpy\distutils\misc_util.py", line 99, in get_num_build_jobs
cpu_count = multiprocessing.cpu_count()
File "C:\Users\toby\miniconda2-64\lib\multiprocessing\__init__.py", line 136, in cpu_count
raise NotImplementedError('cannot determine number of cpus')
NotImplementedError: cannot determine number of cpus
Numpy/Python version information:
'2.7.15 |Anaconda, Inc.| (default, May 1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)]'
numpy-1.15.2 (via anaconda)
Metadata
Metadata
Assignees
Type
Projects
Status
Done