BoothGroup/pygnme

Issues with CMake on Windows

Closed this issue · 6 comments

Hi, I'm trying to install pygnme but I get this error when I run "python -m pip install . -v --user" in the pygnme directory (I already have wheel installed):

Using pip 23.1.2 from C:\Users\aayati\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip (python 3.10)
Processing c:\users\aayati\onedrive - university of new brunswick\c-uhf\pygnme
Running command python setup.py egg_info
running egg_info
creating C:\Users\aayati\AppData\Local\Temp\pip-pip-egg-info-08t4g38h\pygnme.egg-info
writing C:\Users\aayati\AppData\Local\Temp\pip-pip-egg-info-08t4g38h\pygnme.egg-info\PKG-INFO
writing dependency_links to C:\Users\aayati\AppData\Local\Temp\pip-pip-egg-info-08t4g38h\pygnme.egg-info\dependency_links.txt
writing top-level names to C:\Users\aayati\AppData\Local\Temp\pip-pip-egg-info-08t4g38h\pygnme.egg-info\top_level.txt
writing manifest file 'C:\Users\aayati\AppData\Local\Temp\pip-pip-egg-info-08t4g38h\pygnme.egg-info\SOURCES.txt'
reading manifest file 'C:\Users\aayati\AppData\Local\Temp\pip-pip-egg-info-08t4g38h\pygnme.egg-info\SOURCES.txt'
writing manifest file 'C:\Users\aayati\AppData\Local\Temp\pip-pip-egg-info-08t4g38h\pygnme.egg-info\SOURCES.txt'
Preparing metadata (setup.py) ... done
Building wheels for collected packages: pygnme
Running command python setup.py bdist_wheel
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-310
creating build\lib.win-amd64-cpython-310\pygnme
copying pygnme_init_.py -> build\lib.win-amd64-cpython-310\pygnme
running build_ext
cmake "C:\Users\aayati\OneDrive - University of New Brunswick\C-UHF\pygnme" "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\aayati\OneDrive - University of New Brunswick\C-UHF\pygnme\build\lib.win-amd64-cpython-310" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_RPATH=@origin -DPYTHON_EXECUTABLE=C:\Users\aayati\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe
-- Building for: NMake Makefiles
CMake Error at CMakeLists.txt:2 (project):
Running

 'nmake' '-?'

failed with:

 The system cannot find the file specified

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
error: command 'C:\Program Files\CMake\bin\cmake.exe' failed with exit code 1
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
full command: 'C:\Users\aayati\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe' -u -c '
exec(compile('"'"''"'"''"'"'

This is -- a caller that pip uses to run setup.py

- It imports setuptools before invoking setup.py, to enable projects that directly

import from distutils.core to work with newer packaging standards.

- It provides a clear error message when setuptools is not installed.

- It sets sys.argv[0] to the underlying setup.py, when invoking setup.py so

setuptools doesn'"'"'t think the script is -c. This avoids the following warning:

manifest_maker: standard file '"'"'-c'"'"' not found".

- It generates a shim setup.py, for handling setup.cfg-only projects.

import os, sys, tokenize

try:
import setuptools
except ImportError as error:
print(
"ERROR: Can not execute setup.py since setuptools is not available in "
"the build environment.",
file=sys.stderr,
)
sys.exit(1)

file = %r
sys.argv[0] = file

if os.path.exists(file):
filename = file
with tokenize.open(file) as f:
setup_py_code = f.read()
else:
filename = ""
setup_py_code = "from setuptools import setup; setup()"

exec(compile(setup_py_code, filename, "exec"))
'"'"''"'"''"'"' % ('"'"'C:\Users\aayati\OneDrive - University of New Brunswick\C-UHF\pygnme\setup.py'"'"',), "", "exec"))' bdist_wheel -d 'C:\Users\aayati\AppData\Local\Temp\pip-wheel-bi6jnr9a'
cwd: C:\Users\aayati\OneDrive - University of New Brunswick\C-UHF\pygnme
Building wheel for pygnme (setup.py) ... error
ERROR: Failed building wheel for pygnme
Running setup.py clean for pygnme
Running command python setup.py clean
running clean
removing 'build\temp.win-amd64-cpython-310' (and everything under it)
removing 'build\lib.win-amd64-cpython-310' (and everything under it)
'build\bdist.win-amd64' does not exist -- can't clean it
'build\scripts-3.10' does not exist -- can't clean it
removing 'build'
Failed to build pygnme
ERROR: Could not build wheels for pygnme, which is required to install pyproject.toml-based projects

Hope you can help me resolve it.

Thanks

The formatting for your issue is a bit mangled so I might not be fully understanding, but it seems as though the issue is on importing setuptools - can you try pip install setuptools --user and try again?

I also haven't tested any of this on Windows, though I can't think of any specific reason why it wouldn't work unless libgnme doesn't support Windows (@hgaburton?).

I tried pip install setuptools --user and I get: Requirement already satisfied. I tried again and I got the same error.
Here is the same error message in a txt file
error message.txt

If you don't mind, can you give me the output of pip freeze so that I can reproduce your environment, and I will try this on a windows machine tomorrow

Sure, thank you!
Here it is.
pip freeze.txt

Sorry for the delay, I did not have access to a windows machine - can you try to add '-DCMAKE_GENERATOR=<option>' to this list? For <option> use either "Virtual Studio" if you're using vscode, or another generator if not such as "MinGW Makefiles".

hmm, seems like if I use "-G \"Visual Studio 17 2022\"" instead it accepts the argument but then says that the generator doesn't exist even though it's in the list. I have zero developing experience in windows. Does this get you anywhere?