Creon 을 이용해야하므로 무조건 Windows 상에서 32bit python 을 이용해야 하는데
sqlalchemy 설치 중 에러를 만남.
building 'greenlet._greenlet' extension
creating build\temp.win32-cpython-312\Release\src\greenlet
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\bin\HostX86\x86\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DWIN32=1 -IC:\Users\ddoac\Automation\jts2024\venv\include -IC:\Users\ddoac\AppData\Local\Programs\Python\Python312-32\include -IC:\Users\ddoac\AppData\Local\Programs\Python\Python312-32\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" /EHsc /Tpsrc/greenlet/greenlet.cpp /Fobuild\temp.win32-cpython-312\Release\src/greenlet/greenlet.obj /EHsr /GT /std:c++20
greenlet.cpp
src/greenlet/greenlet.cpp(1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\include\cstdlib(11): fatal error C1083: 포함 파일을 열 수 없습니다. 'math.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.42.34433\\bin\\HostX86\\x86\\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: ERROR: Failed to build installable wheels for some pyproject.toml based projects (greenlet)
sqlalchemy 설치 중에 greenlet 이라는 패키지도 같이 설치되는 듯 보이는데 자꾸 이 놈 설치할 때 에러 발생.
python 3.13 부터 3.9 까지 다 설치해봤는데 3.13에서만 설치가 되고 나머지에서는 위의 에러를 뿜으며 중단.
그 중 Warning C4819 의 해결책으로 많이 돌아다니는, 파일 열어서 UTF-8(BOM) 형식으로 저장하는 건 지금 이 과정은 pip install 중에 발생한 에러니까 소스코드의 인코딩을 바꿔서 재수행한다는 건 말이 아예 안 되고.
로그에서 이 부분에 주목해봄.
'math.h': No such file or directory
c 코딩할 때 가장 기본적으로 include할 수 있는 옛날 그시절 math.h 이 맞다면, visual studio build tools 를 설치하면 되나? 싶어서 다운로드 후 설치 및 c++ 빌드도구 까지 설치.
오? 그랬더니 되네.