pip3 install sqlalchemy
시도하니까
Collecting greenlet
Using cached greenlet-3.1.1.tar.gz (186 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: greenlet
Building wheel for greenlet (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /Users/hyery95/Desktop/project/gramapi/venv/bin/python3 /Users/hyery95/Desktop/project/gramapi/venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /var/folders/fq/45j2m0c16tq2wjv6fjd44yqc0000gn/T/tmpfsn0bze7
cwd: /private/var/folders/fq/45j2m0c16tq2wjv6fjd44yqc0000gn/T/pip-install-d6ecykkk/greenlet_5335e24ed154475dade26f7822739eb9
Complete output (118 lines):
running bdist_wheel
running build
running build_py
creating build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
creating build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
creating build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_version.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_weakref.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/fail_slp_switch.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_gc.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/leakcheck.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/fail_switch_two_greenlets.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_generator.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_greenlet_trash.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_throw.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_tracing.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/fail_cpp_exception.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_cpp.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_contextvars.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_greenlet.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_extension_interface.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/fail_clearing_run_switches.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/fail_switch_three_greenlets2.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/fail_initialstub_already_started.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_generator_nested.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_stack_saved.py -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/test_leaks.py -> build/lib.macosx-10.9-x86_64-cpython-38/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'
warning: no previously-included files found matching 'benchmarks/*.json'
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'
copying src/greenlet/CObjects.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/PyGreenlet.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/PyGreenlet.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/PyGreenletUnswitchable.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/PyModule.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TBrokenGreenlet.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TExceptionState.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TGreenlet.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TGreenlet.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TGreenletGlobals.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TMainGreenlet.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TPythonState.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TStackState.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TThreadState.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TThreadStateCreator.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TThreadStateDestroy.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/TUserGreenlet.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_allocator.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_compiler_compat.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_cpython_add_pending.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_cpython_compat.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_exceptions.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_internal.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_refs.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_slp_switch.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/greenlet_thread_support.hpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/slp_platformselect.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet
copying src/greenlet/platform/setup_switch_x64_masm.cmd -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_aarch64_gcc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_alpha_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_amd64_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_arm32_gcc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_arm32_ios.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.asm -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_arm64_masm.obj -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_arm64_msvc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_csky_gcc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_loongarch64_linux.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_m68k_gcc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_mips_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_ppc64_aix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_ppc64_linux.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_ppc_aix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_ppc_linux.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_ppc_macosx.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_ppc_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_riscv_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_s390_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_sh_gcc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_sparc_sun_gcc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_x32_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.asm -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_x64_masm.obj -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_x64_msvc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_x86_msvc.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/platform/switch_x86_unix.h -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/platform
copying src/greenlet/tests/_test_extension.c -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
copying src/greenlet/tests/_test_extension_cpp.cpp -> build/lib.macosx-10.9-x86_64-cpython-38/greenlet/tests
running build_ext
building 'greenlet._greenlet' extension
creating build/temp.macosx-10.9-x86_64-cpython-38/src/greenlet
g++ -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -I/Users/hyery95/Desktop/project/gramapi/venv/include -I/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8 -c src/greenlet/greenlet.cpp -o build/temp.macosx-10.9-x86_64-cpython-38/src/greenlet/greenlet.o --std=c++11
src/greenlet/greenlet.cpp:9:10: fatal error: 'cstdlib' file not found
9 | #include <cstdlib>
| ^~~~~~~~~
1 error generated.
error: command '/usr/bin/g++' failed with exit code 1
----------------------------------------
ERROR: Failed building wheel for greenlet
Failed to build greenlet
ERROR: Could not build wheels for greenlet which use PEP 517 and cannot be installed directly
엄청 긴 에러 메세지와 함께 설치가 실패했다.
이 오류는 Python이 greenlet 패키지를 빌드하는 데 필요한 도구가 부족해서 발생할 수 있기에 pip과 setuptools를 최신 버전으로 업데이트해주었다.
pip install --upgrade pip setuptools
그리고 다시 설치를 시도해주었다
pip3 install sqlalchemy
잘 설치되었다. 굳