Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't compile greenlet in Windows. I installed Build tools and Windows SDK too #409

Open
teleprv opened this issue Jun 4, 2024 · 1 comment

Comments

@teleprv
Copy link

teleprv commented Jun 4, 2024

There's error
Can you fix this problem?


  × Building wheel for greenlet (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [220 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-312
      creating build\lib.win-amd64-cpython-312\greenlet
      copying src\greenlet\__init__.py -> build\lib.win-amd64-cpython-312\greenlet
      creating build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_contextvars.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_cpp.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_extension_interface.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_gc.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_generator.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_generator_nested.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_greenlet.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_leaks.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_stack_saved.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_throw.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_tracing.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_version.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\test_weakref.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\__init__.py -> build\lib.win-amd64-cpython-312\greenlet\tests
      running egg_info
      writing src\greenlet.egg-info\PKG-INFO
      writing dependency_links to src\greenlet.egg-info\dependency_links.txt
      writing requirements to src\greenlet.egg-info\requires.txt
      writing top-level names to src\greenlet.egg-info\top_level.txt
      reading manifest file 'src\greenlet.egg-info\SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      no previously-included directories found matching 'docs\_build'
      warning: no files found matching '*.py' under directory 'appveyor'
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyd' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '.coverage' found anywhere in distribution
      adding license file 'LICENSE'
      adding license file 'LICENSE.PSF'
      adding license file 'AUTHORS'
      writing manifest file 'src\greenlet.egg-info\SOURCES.txt'
      C:\Users\Khalifa\AppData\Local\Temp\pip-build-env-nt9v_r1l\overlay\Lib\site-packages\setuptools\command\build_py.py:207: _Warning: Package 'greenlet.platform' is absent from the `packages` configuration.
      !!

              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'greenlet.platform' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration.

              This leads to an ambiguous overall configuration. If you want to distribute this
              package, please make sure that 'greenlet.platform' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery methods
              (for example by using `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'greenlet.platform' to be distributed and are
              already explicitly excluding 'greenlet.platform' via
              `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or `include-package-data=False` in
              combination with a more fine grained `package-data` configuration.

              You can read more about "package data files" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


              [^1]: For Python, any directory (with suitable naming) can be imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of package data
                    directory, all directories are treated like packages.
              ********************************************************************************

      !!
        check.warn(importable)
      copying src\greenlet\greenlet.c -> build\lib.win-amd64-cpython-312\greenlet
      copying src\greenlet\greenlet.h -> build\lib.win-amd64-cpython-312\greenlet
      copying src\greenlet\slp_platformselect.h -> build\lib.win-amd64-cpython-312\greenlet
      creating build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\setup_switch_x64_masm.cmd -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_aarch64_gcc.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_alpha_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_amd64_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_arm32_gcc.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_arm32_ios.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_csky_gcc.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_m68k_gcc.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_mips_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_ppc64_aix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_ppc64_linux.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_ppc_aix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_ppc_linux.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_ppc_macosx.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_ppc_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_riscv_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_s390_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_sparc_sun_gcc.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_x32_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_x64_masm.asm -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_x64_masm.obj -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_x64_msvc.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_x86_msvc.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\platform\switch_x86_unix.h -> build\lib.win-amd64-cpython-312\greenlet\platform
      copying src\greenlet\tests\_test_extension.c -> build\lib.win-amd64-cpython-312\greenlet\tests
      copying src\greenlet\tests\_test_extension_cpp.cpp -> build\lib.win-amd64-cpython-312\greenlet\tests
      running build_ext
      building 'greenlet._greenlet' extension
      creating build\temp.win-amd64-cpython-312
      creating build\temp.win-amd64-cpython-312\Release
      creating build\temp.win-amd64-cpython-312\Release\src
      creating build\temp.win-amd64-cpython-312\Release\src\greenlet
      "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:\Users\Khalifa\AppData\Local\Programs\Python\Python312\include -IC:\Users\Khalifa\AppData\Local\Programs\Python\Python312\Include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" /Tcsrc/greenlet/greenlet.c /Fobuild\temp.win-amd64-cpython-312\Release\src/greenlet/greenlet.obj
      greenlet.c
      c:\users\khalifa\appdata\local\temp\pip-install-v4klvv5i\greenlet_dee2f57da44944e7bcaea1deee4e26ca\src\greenlet\greenlet.h(42): error C2061: syntax error: identifier 'CFrame'
      c:\users\khalifa\appdata\local\temp\pip-install-v4klvv5i\greenlet_dee2f57da44944e7bcaea1deee4e26ca\src\greenlet\greenlet.h(44): error C2059: syntax error: '}'
      src/greenlet/greenlet.c(130): error C2143: syntax error: missing '{' before '*'
      src/greenlet/greenlet.c(132): error C2143: syntax error: missing '{' before '*'
      src/greenlet/greenlet.c(134): error C2143: syntax error: missing '{' before '*'
      src/greenlet/greenlet.c(169): error C2143: syntax error: missing ')' before '*'
      src/greenlet/greenlet.c(169): error C2143: syntax error: missing '{' before '*'
      src/greenlet/greenlet.c(169): error C2059: syntax error: ')'
      src/greenlet/greenlet.c(170): error C2054: expected '(' to follow 'g'
      src/greenlet/greenlet.c(184): error C2143: syntax error: missing '{' before '*'
      src/greenlet/greenlet.c(187): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(187): error C2065: 'gmain': undeclared identifier
      src/greenlet/greenlet.c(187): warning C4552: '*': operator has no effect; expected operator with side-effect
      src/greenlet/greenlet.c(197): error C2065: 'gmain': undeclared identifier
      src/greenlet/greenlet.c(197): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(197): error C2059: syntax error: ')'
      src/greenlet/greenlet.c(198): error C2065: 'gmain': undeclared identifier
      src/greenlet/greenlet.c(198): warning C4047: '==': 'int' differs in levels of indirection from 'void *'
      src/greenlet/greenlet.c(201): error C2065: 'gmain': undeclared identifier
      src/greenlet/greenlet.c(201): error C2223: left of '->stack_start' must point to struct/union
      src/greenlet/greenlet.c(202): error C2065: 'gmain': undeclared identifier
      src/greenlet/greenlet.c(202): error C2223: left of '->stack_stop' must point to struct/union
      src/greenlet/greenlet.c(204): error C2065: 'gmain': undeclared identifier
      src/greenlet/greenlet.c(204): error C2223: left of '->run_info' must point to struct/union
      src/greenlet/greenlet.c(206): error C2065: 'gmain': undeclared identifier
      src/greenlet/greenlet.c(206): warning C4047: 'return': 'int *' differs in levels of indirection from 'int'
      src/greenlet/greenlet.c(214): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(214): error C2065: 'current': undeclared identifier
      src/greenlet/greenlet.c(214): warning C4552: '*': operator has no effect; expected operator with side-effect
      src/greenlet/greenlet.c(215): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(215): error C2065: 'previous': undeclared identifier
      src/greenlet/greenlet.c(215): warning C4552: '*': operator has no effect; expected operator with side-effect
      src/greenlet/greenlet.c(225): error C2065: 'current': undeclared identifier
      src/greenlet/greenlet.c(225): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(225): error C2059: syntax error: ')'
      src/greenlet/greenlet.c(230): error C2059: syntax error: 'else'
      src/greenlet/greenlet.c(240): error C2059: syntax error: '<parameter-list>'
      src/greenlet/greenlet.c(242): error C2143: syntax error: missing '{' before ':'
      src/greenlet/greenlet.c(242): error C2059: syntax error: ':'
      src/greenlet/greenlet.c(245): error C2099: initializer is not a constant
      src/greenlet/greenlet.c(246): error C2373: 'ts_current': redefinition; different type modifiers
      src/greenlet/greenlet.c(134): note: see declaration of 'ts_current'
      src/greenlet/greenlet.c(246): error C2065: 'current': undeclared identifier
      src/greenlet/greenlet.c(246): error C2099: initializer is not a constant
      src/greenlet/greenlet.c(249): error C2059: syntax error: 'if'
      src/greenlet/greenlet.c(257): error C2143: syntax error: missing ')' before '('
      src/greenlet/greenlet.c(257): error C2091: function returns function
      src/greenlet/greenlet.c(257): error C2059: syntax error: ')'
      src/greenlet/greenlet.c(257): error C2143: syntax error: missing ')' before ';'
      src/greenlet/greenlet.c(257): error C2373: 'Py_DECREF': redefinition; different type modifiers
      c:\users\khalifa\appdata\local\programs\python\python312\include\object.h(696): note: see declaration of 'Py_DECREF'
      src/greenlet/greenlet.c(261): error C2065: 'tstate': undeclared identifier
      src/greenlet/greenlet.c(261): error C2223: left of '->dict' must point to struct/union
      src/greenlet/greenlet.c(261): error C2198: 'PyDict_GetItem': too few arguments for call
      src/greenlet/greenlet.c(261): error C2099: initializer is not a constant
      src/greenlet/greenlet.c(262): error C2059: syntax error: 'if'
      src/greenlet/greenlet.c(271): error C2059: syntax error: 'if'
      src/greenlet/greenlet.c(280): error C2143: syntax error: missing ')' before '('
      src/greenlet/greenlet.c(280): error C2091: function returns function
      src/greenlet/greenlet.c(280): error C2059: syntax error: ')'
      src/greenlet/greenlet.c(280): error C2143: syntax error: missing ')' before ';'
      src/greenlet/greenlet.c(280): error C2373: 'Py_DECREF': redefinition; different type modifiers
      c:\users\khalifa\appdata\local\programs\python\python312\include\object.h(696): note: see declaration of 'Py_DECREF'
      src/greenlet/greenlet.c(282): error C2371: 'PyErr_Restore': redefinition; different basic types
      c:\users\khalifa\appdata\local\programs\python\python312\include\pyerrors.h(20): note: see declaration of 'PyErr_Restore'
      src/greenlet/greenlet.c(286): error C2059: syntax error: 'if'
      src/greenlet/greenlet.c(289): error C2059: syntax error: 'return'
      src/greenlet/greenlet.c(290): error C2059: syntax error: '}'
      src/greenlet/greenlet.c(388): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(388): error C2059: syntax error: ')'
      src/greenlet/greenlet.c(388): error C2223: left of '->stack_start' must point to struct/union
      src/greenlet/greenlet.c(406): error C2143: syntax error: missing ')' before '*'
      src/greenlet/greenlet.c(406): error C2143: syntax error: missing '{' before '*'
      src/greenlet/greenlet.c(406): error C2059: syntax error: 'type'
      src/greenlet/greenlet.c(406): error C2059: syntax error: ')'
      src/greenlet/greenlet.c(438): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(438): error C2297: '*': illegal, right operand has type 'int *'
      src/greenlet/greenlet.c(439): error C2065: 'PyGreenlet': undeclared identifier
      src/greenlet/greenlet.c(439): error C2065: 'owner': undeclared identifier
      src/greenlet/greenlet.c(439): warning C4047: '=': 'int' differs in levels of indirection from 'int *volatile '
      src/greenlet/greenlet.c(439): error C2106: '=': left operand must be l-value
      src/greenlet/greenlet.c(446): error C2223: left of '->stack_saved' must point to struct/union
      src/greenlet/greenlet.c(447): error C2223: left of '->stack_start' must point to struct/union
      src/greenlet/greenlet.c(447): error C2223: left of '->stack_copy' must point to struct/union
      src/greenlet/greenlet.c(447): error C2223: left of '->stack_saved' must point to struct/union
      src/greenlet/greenlet.c(447): error C2168: 'memcpy': too few actual parameters for intrinsic function
      src/greenlet/greenlet.c(448): error C2223: left of '->stack_copy' must point to struct/union
      src/greenlet/greenlet.c(448): error C2198: 'PyMem_Free': too few arguments for call
      src/greenlet/greenlet.c(449): error C2223: left of '->stack_copy' must point to struct/union
      src/greenlet/greenlet.c(450): error C2223: left of '->stack_saved' must point to struct/union
      src/greenlet/greenlet.c(452): error C2065: 'owner': undeclared identifier
      src/greenlet/greenlet.c(452): error C2223: left of '->stack_start' must point to struct/union
      src/greenlet/greenlet.c(453): error C2065: 'owner': undeclared identifier
      src/greenlet/greenlet.c(453): error C2223: left of '->stack_prev' must point to struct/union
      src/greenlet/greenlet.c(455): error C2065: 'owner': undeclared identifier
      src/greenlet/greenlet.c(455): error C2223: left of '->stack_stop' must point to struct/union
      src/greenlet/greenlet.c(455): fatal error C1903: unable to recover from previous error(s); stopping compilation
      Internal Compiler Error in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe.  You will be prompted to send an error report to Microsoft later.
      INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe'
          Please choose the Technical Support command on the Visual C++
          Help menu, or open the Technical Support help file for more information
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for greenlet
Failed to build greenlet
ERROR: Could not build wheels for greenlet, which is required to install pyproject.toml-based projects
@jamadden
Copy link
Contributor

greenlet is built and tested with Visual Studio 2022 for Python 3.12 (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\). Perhaps try that version?

Note that 32-bit Windows is not tested or supported by greenlet on any version of Python newer than Python 3.9. Thus, it may or may not work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants