python 자체적으로 auto vectorization을 지원하는지 모르겠고

-O2 밖에 안되서 어떻게 될지 모르겠지만 혹시나 cython 이라던가 이쪽에서 지원하지 않을가 해서 검색해보니

먼가 하나 나와서 테스트 중

 

설치는 간단하고

# pip3 install simsimd
Collecting simsimd
  Downloading simsimd-6.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.metadata (70 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.5/70.5 kB 758.3 kB/s eta 0:00:00
Downloading simsimd-6.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (563 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 563.2/563.2 kB 4.6 MB/s eta 0:00:00
Installing collected packages: simsimd
Successfully installed simsimd-6.5.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[링크 : https://pypi.org/project/simsimd/]

 

확인도 간단한데

그나저나.. arm aarch64 에서는 neon이 활성화 되는데

10세대 모바일 프로세서에서는 왜.. haswell 이라고 하나만 활성화 될까? skylake 정도는 활성화 되어야 하는거 아닌가?

imx8mp aarch64 i7-10510U x64
>>> import simsimd
>>> print(simsimd.get_capabilities())
{'serial': True, 'neon': True, 'sve': False, 'neon_f16': False, 'sve_f16': False, 'neon_bf16': False, 'sve_bf16': False, 'neon_i8': False, 'sve_i8': False, 'haswell': False, 'skylake': False, 'ice': False, 'genoa': False, 'sapphire': False, 'turin': False, 'sierra': False}
>>> import simsimd
>>> print(simsimd.get_capabilities())
{'serial': True, 'neon': False, 'sve': False, 'neon_f16': False, 'sve_f16': False, 'neon_bf16': False, 'sve_bf16': False, 'neon_i8': False, 'sve_i8': False, 'haswell': True, 'skylake': False, 'ice': False, 'genoa': False, 'sapphire': False, 'turin': False, 'sierra': False}
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
vmx flags : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_based_exec
bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs itlb_multihit srbds mmio_stale_data retbleed eibrs_pbrsb gds bhi

 

그런데 dot 이랑 cosine이랑 무슨 차이지 계산한 값이 많이 다른 느낌인데..

simsimd.cos()는 1 에서 빼줘야 맞다.

Posted by 구차니

ppa 추가해서 원하는 버전 설치하고, update-alternatives로 연결하면 된다.

 

sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.7

[링크 : https://askubuntu.com/questions/1251318/how-do-you-install-python3-7-to-ubuntu-20-04]

 

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

[링크 : https://sosodev.tistory.com/entry/Python-pyenv-특정-버전을-설치하기-Ubuntu]

'Programming > python(파이썬)' 카테고리의 다른 글

python simsimd  (0) 2025.08.28
pip 패키지 완전 삭제하기  (0) 2025.08.13
pip install cmake build multi core support  (0) 2025.08.13
python 빌드 정보  (0) 2025.08.04
python용 얼굴탐지, 인식  (0) 2025.08.04
Posted by 구차니

패키지를 삭제했는데 바로 재설치가 되서

캐시되었다는 말을 검색해보니 cache purge를 통해 완전히 날리고 설치할수 있다고 한다.

 

해보니 확실히 처음부터 하긴 한다.

$ time CMAKE_BUILD_PARALLEL_LEVEL=3 pip3 uninstall --break-system-packages -v dlibFound existing installation: dlib 20.0.0
Uninstalling dlib-20.0.0:
  Would remove:
    /home/minimonk/.local/lib/python3.12/site-packages/_dlib_pybind11.cpython-312-aarch64-linux-gnu.so
    /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/INSTALLER
    /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/METADATA
    /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/RECORD
    /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/WHEEL
    /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/licenses/LICENSE.txt
    /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/top_level.txt
    /home/minimonk/.local/lib/python3.12/site-packages/dlib/__init__.py
    /home/minimonk/.local/lib/python3.12/site-packages/dlib/__pycache__/__init__.cpython-312.pyc
  Will actually move:
    /home/minimonk/.local/lib/python3.12/site-packages/_dlib_pybind11.cpython-312-aarch64-linux-gnu.so
    /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/
    /home/minimonk/.local/lib/python3.12/site-packages/dlib/
Proceed (Y/n)? y
  Removing file or directory /home/minimonk/.local/lib/python3.12/site-packages/_dlib_pybind11.cpython-312-aarch64-linux-gnu.so
  Removing file or directory /home/minimonk/.local/lib/python3.12/site-packages/dlib-20.0.0.dist-info/
  Removing file or directory /home/minimonk/.local/lib/python3.12/site-packages/dlib/
  Successfully uninstalled dlib-20.0.0

real    0m4.584s
user    0m2.585s
sys     0m0.381s

$ time CMAKE_BUILD_PARALLEL_LEVEL=3 pip3 install --break-system-packages -v dlib
Using pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)
Defaulting to user installation because normal site-packages is not writeable
Collecting dlib
  Using cached dlib-20.0.0-cp312-cp312-linux_aarch64.whl
Installing collected packages: dlib
Successfully installed dlib-20.0.0

real    0m4.876s
user    0m4.363s
sys     0m0.347s


pip3 cache purge
Files removed: 54

 

[링크 : https://ufris.tistory.com/61]

'Programming > python(파이썬)' 카테고리의 다른 글

python simsimd  (0) 2025.08.28
python 원하는 버전 설치 및 연결하기  (0) 2025.08.26
pip install cmake build multi core support  (0) 2025.08.13
python 빌드 정보  (0) 2025.08.04
python용 얼굴탐지, 인식  (0) 2025.08.04
Posted by 구차니

pip로 설치되는 녀석중 빌드가 필요한 녀석이 있는데

dlib가 원인을 알수 없으나(?) odroid-c2 / armbian 에서 1코어만 빌드하지만

nxp imx8mp evk 에서는 3코어로 빌드해서 어떤 옵션을 주어야 되는지

웬만한건 다 검색하고 해봐도 안되서 cmake 환경변수로 찾아보니 먼가 나왔고 시도하니 된다!

 

$ pip3 install  --break-system-packages -v dlib
  Invoking CMake build: 'cmake --build . --config Release -- -j1'
  [  1%] Building CXX object dlib_build/CMakeFiles/dlib.dir/base64/base64_kernel_1.cpp.o

 

CMAKE_BUILD_PARALLEL_LEVEL=4 pip3 install  --break-system-packages -v dlib
  Invoking CMake build: 'cmake --build . --config Release -- -j4'
  [  3%] Building CXX object dlib_build/CMakeFiles/dlib.dir/bit_stream/bit_stream_kernel_1.cpp.o
  [  3%] Building CXX object dlib_build/CMakeFiles/dlib.dir/bigint/bigint_kernel_2.cpp.o
  [  2%] Building CXX object dlib_build/CMakeFiles/dlib.dir/bigint/bigint_kernel_1.cpp.o

[링크 : https://cmake.org/cmake/help/latest/envvar/CMAKE_BUILD_PARALLEL_LEVEL.html#cmake-build-parallel-level]

'Programming > python(파이썬)' 카테고리의 다른 글

python 원하는 버전 설치 및 연결하기  (0) 2025.08.26
pip 패키지 완전 삭제하기  (0) 2025.08.13
python 빌드 정보  (0) 2025.08.04
python용 얼굴탐지, 인식  (0) 2025.08.04
python struct  (0) 2024.12.13
Posted by 구차니

문득 python을 빌드할때 어떤 옵션을 주고 했을까 궁금해서 찾아보는 중

import sysconfig
print(sysconfig.get_config_vars())

[링크 : https://stackoverflow.com/questions/10192758/how-to-get-the-list-of-options-that-python-was-compiled-with]

 

online python object beautifier로 이쁘게~

ubuntu 22.04 LTS desktop 64bit / Python 3.10.12

{
    "prefix": "/usr",
    "exec_prefix": "/usr",
    "py_version": "3.10.12",
    "py_version_short": "3.10",
    "py_version_nodot": "310",
    "installed_base": "/usr",
    "base": "/usr",
    "installed_platbase": "/usr",
    "platbase": "/usr",
    "projectbase": "/usr/bin",
    "platlibdir": "lib",
    "abiflags": "",
    "py_version_nodot_plat": "",
    "ABIFLAGS": "",
    "AC_APPLE_UNIVERSAL_BUILD": 0,
    "AIX_BUILDDATE": 0,
    "AIX_GENUINE_CPLUSPLUS": 0,
    "ALIGNOF_LONG": 8,
    "ALIGNOF_SIZE_T": 8,
    "ALT_SOABI": 0,
    "ANDROID_API_LEVEL": 0,
    "AR": "x86_64-linux-gnu-gcc-ar",
    "ARFLAGS": "rcs",
    "BASECFLAGS": "-Wno-unused-result -Wsign-compare",
    "BASECPPFLAGS": "-IObjects -IInclude -IPython",
    "BASEMODLIBS": "",
    "BINDIR": "/usr/bin",
    "BINLIBDEST": "/usr/lib/x86_64-linux-gnu/python3.10",
    "BLDLIBRARY": "-lpython3.10",
    "BLDSHARED": "x86_64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions      -g -fwrapv -O2   ",
    "BUILDEXE": "",
    "BUILDPYTHON": "python",
    "BUILD_GNU_TYPE": "x86_64-pc-linux-gnu",
    "BYTESTR_DEPS": "\\",
    "CC": "x86_64-linux-gnu-gcc",
    "CCSHARED": "-fPIC",
    "CFLAGS": "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2   ",
    "CFLAGSFORSHARED": "-fPIC",
    "CFLAGS_ALIASING": "",
    "CFLAGS_NODIST": "",
    "CONFIGFILES": "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in",
    "CONFIGURE_CFLAGS": "-g       -fstack-protector-strong -Wformat -Werror=format-security",
    "CONFIGURE_CFLAGS_NODIST": "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden",
    "CONFIGURE_CPPFLAGS": "-Wdate-time -D_FORTIFY_SOURCE=2",
    "CONFIGURE_LDFLAGS": "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   ",
    "CONFIGURE_LDFLAGS_NODIST": "",
    "CONFIG_ARGS": "'--enable-shared' '--prefix=/usr' '--libdir=/usr/lib/x86_64-linux-gnu' '--enable-ipv6' '--enable-loadable-sqlite-extensions' '--with-dbmliborder=bdb:gdbm' '--with-computed-gotos' '--without-ensurepip' '--with-system-expat' '--with-dtrace' '--with-system-libmpdec' '--with-wheel-pkg-dir=/usr/share/python-wheels/' 'MKDIR_P=/bin/mkdir -p' '--with-system-ffi' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-g       -fstack-protector-strong -Wformat -Werror=format-security ' 'LDFLAGS=-Wl,-Bsymbolic-functions      -g -fwrapv -O2   ' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'",
    "CONFINCLUDEDIR": "/usr/include",
    "CONFINCLUDEPY": "/usr/include/python3.10",
    "COREPYTHONPATH": "",
    "COVERAGE_INFO": "/build/python3.10-rtDYKr/python3.10-3.10.12/build-shared/coverage.info",
    "COVERAGE_REPORT": "/build/python3.10-rtDYKr/python3.10-3.10.12/build-shared/lcov-report",
    "COVERAGE_REPORT_OPTIONS": '--no-branch-coverage --title "CPython lcov report"',
    "CPPFLAGS": "-IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2",
    "CXX": "x86_64-linux-gnu-g++",
    "DESTDIRS": "/usr /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/python3.10 /usr/lib/python3.10/lib-dynload",
    "DESTLIB": "/usr/lib/python3.10",
    "DESTPATH": "",
    "DESTSHARED": "/usr/lib/python3.10/lib-dynload",
    "DFLAGS": "",
    "DIRMODE": 755,
    "DIST": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy",
    "DISTDIRS": "Include Lib Misc Ext-dummy",
    "DISTFILES": "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in",
    "DLINCLDIR": ".",
    "DLLLIBRARY": "",
    "DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754": 0,
    "DOUBLE_IS_BIG_ENDIAN_IEEE754": 0,
    "DOUBLE_IS_LITTLE_ENDIAN_IEEE754": 1,
    "DTRACE": "/usr/bin/dtrace",
    "DTRACE_DEPS": "\\",
    "DTRACE_HEADERS": "Include/pydtrace_probes.h",
    "DTRACE_OBJS": "Python/pydtrace.o",
    "DYNLOADFILE": "dynload_shlib.o",
    "ENABLE_IPV6": 1,
    "ENSUREPIP": "no",
    "EXE": "",
    "EXEMODE": 755,
    "EXPERIMENTAL_ISOLATED_SUBINTERPRETERS": 0,
    "EXPORTSFROM": "",
    "EXPORTSYMS": "",
    "EXTRATESTOPTS": "",
    "EXT_SUFFIX": ".cpython-310-x86_64-linux-gnu.so",
    "FILEMODE": 644,
    "FLOAT_WORDS_BIGENDIAN": 0,
    "FLOCK_NEEDS_LIBBSD": 0,
    "GETPGRP_HAVE_ARG": 0,
    "GITBRANCH": "",
    "GITTAG": "",
    "GITVERSION": "",
    "GNULD": "yes",
    "HAVE_ACCEPT4": 1,
    "HAVE_ACOSH": 1,
    "HAVE_ADDRINFO": 1,
    "HAVE_ALARM": 1,
    "HAVE_ALIGNED_REQUIRED": 0,
    "HAVE_ALLOCA_H": 1,
    "HAVE_ALTZONE": 0,
    "HAVE_ASINH": 1,
    "HAVE_ASM_TYPES_H": 1,
    "HAVE_ATANH": 1,
    "HAVE_BIND_TEXTDOMAIN_CODESET": 1,
    "HAVE_BLUETOOTH_BLUETOOTH_H": 1,
    "HAVE_BLUETOOTH_H": 0,
    "HAVE_BROKEN_MBSTOWCS": 0,
    "HAVE_BROKEN_NICE": 0,
    "HAVE_BROKEN_PIPE_BUF": 0,
    "HAVE_BROKEN_POLL": 0,
    "HAVE_BROKEN_POSIX_SEMAPHORES": 0,
    "HAVE_BROKEN_PTHREAD_SIGMASK": 0,
    "HAVE_BROKEN_SEM_GETVALUE": 0,
    "HAVE_BROKEN_UNSETENV": 0,
    "HAVE_BUILTIN_ATOMIC": 1,
    "HAVE_CHFLAGS": 0,
    "HAVE_CHOWN": 1,
    "HAVE_CHROOT": 1,
    "HAVE_CLOCK": 1,
    "HAVE_CLOCK_GETRES": 1,
    "HAVE_CLOCK_GETTIME": 1,
    "HAVE_CLOCK_SETTIME": 1,
    "HAVE_CLOSE_RANGE": 1,
    "HAVE_COMPUTED_GOTOS": 1,
    "HAVE_CONFSTR": 1,
    "HAVE_CONIO_H": 0,
    "HAVE_COPYSIGN": 1,
    "HAVE_COPY_FILE_RANGE": 1,
    "HAVE_CRYPT_H": 1,
    "HAVE_CRYPT_R": 1,
    "HAVE_CTERMID": 1,
    "HAVE_CTERMID_R": 0,
    "HAVE_CURSES_FILTER": 1,
    "HAVE_CURSES_H": 1,
    "HAVE_CURSES_HAS_KEY": 1,
    "HAVE_CURSES_IMMEDOK": 1,
    "HAVE_CURSES_IS_PAD": 1,
    "HAVE_CURSES_IS_TERM_RESIZED": 1,
    "HAVE_CURSES_RESIZETERM": 1,
    "HAVE_CURSES_RESIZE_TERM": 1,
    "HAVE_CURSES_SYNCOK": 1,
    "HAVE_CURSES_TYPEAHEAD": 1,
    "HAVE_CURSES_USE_ENV": 1,
    "HAVE_CURSES_WCHGAT": 1,
    "HAVE_DECL_ISFINITE": 1,
    "HAVE_DECL_ISINF": 1,
    "HAVE_DECL_ISNAN": 1,
    "HAVE_DECL_RTLD_DEEPBIND": 1,
    "HAVE_DECL_RTLD_GLOBAL": 1,
    "HAVE_DECL_RTLD_LAZY": 1,
    "HAVE_DECL_RTLD_LOCAL": 1,
    "HAVE_DECL_RTLD_MEMBER": 0,
    "HAVE_DECL_RTLD_NODELETE": 1,
    "HAVE_DECL_RTLD_NOLOAD": 1,
    "HAVE_DECL_RTLD_NOW": 1,
    "HAVE_DECL_TZNAME": 0,
    "HAVE_DEVICE_MACROS": 1,
    "HAVE_DEV_PTC": 0,
    "HAVE_DEV_PTMX": 1,
    "HAVE_DIRECT_H": 0,
    "HAVE_DIRENT_D_TYPE": 1,
    "HAVE_DIRENT_H": 1,
    "HAVE_DIRFD": 1,
    "HAVE_DLFCN_H": 1,
    "HAVE_DLOPEN": 1,
    "HAVE_DUP2": 1,
    "HAVE_DUP3": 1,
    "HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH": 0,
    "HAVE_DYNAMIC_LOADING": 1,
    "HAVE_ENDIAN_H": 1,
    "HAVE_EPOLL": 1,
    "HAVE_EPOLL_CREATE1": 1,
    "HAVE_ERF": 1,
    "HAVE_ERFC": 1,
    "HAVE_ERRNO_H": 1,
    "HAVE_EVENTFD": 1,
    "HAVE_EXECV": 1,
    "HAVE_EXPLICIT_BZERO": 1,
    "HAVE_EXPLICIT_MEMSET": 0,
    "HAVE_EXPM1": 1,
    "HAVE_FACCESSAT": 1,
    "HAVE_FCHDIR": 1,
    "HAVE_FCHMOD": 1,
    "HAVE_FCHMODAT": 1,
    "HAVE_FCHOWN": 1,
    "HAVE_FCHOWNAT": 1,
    "HAVE_FCNTL_H": 1,
    "HAVE_FDATASYNC": 1,
    "HAVE_FDOPENDIR": 1,
    "HAVE_FDWALK": 0,
    "HAVE_FEXECVE": 1,
    "HAVE_FINITE": 1,
    "HAVE_FLOCK": 1,
    "HAVE_FORK": 1,
    "HAVE_FORKPTY": 1,
    "HAVE_FPATHCONF": 1,
    "HAVE_FSEEK64": 0,
    "HAVE_FSEEKO": 1,
    "HAVE_FSTATAT": 1,
    "HAVE_FSTATVFS": 1,
    "HAVE_FSYNC": 1,
    "HAVE_FTELL64": 0,
    "HAVE_FTELLO": 1,
    "HAVE_FTIME": 1,
    "HAVE_FTRUNCATE": 1,
    "HAVE_FUTIMENS": 1,
    "HAVE_FUTIMES": 1,
    "HAVE_FUTIMESAT": 1,
    "HAVE_GAI_STRERROR": 1,
    "HAVE_GAMMA": 1,
    "HAVE_GCC_ASM_FOR_MC68881": 0,
    "HAVE_GCC_ASM_FOR_X64": 1,
    "HAVE_GCC_ASM_FOR_X87": 1,
    "HAVE_GCC_UINT128_T": 1,
    "HAVE_GETADDRINFO": 1,
    "HAVE_GETC_UNLOCKED": 1,
    "HAVE_GETENTROPY": 1,
    "HAVE_GETGRGID_R": 1,
    "HAVE_GETGRNAM_R": 1,
    "HAVE_GETGROUPLIST": 1,
    "HAVE_GETGROUPS": 1,
    "HAVE_GETHOSTBYNAME": 0,
    "HAVE_GETHOSTBYNAME_R": 1,
    "HAVE_GETHOSTBYNAME_R_3_ARG": 0,
    "HAVE_GETHOSTBYNAME_R_5_ARG": 0,
    "HAVE_GETHOSTBYNAME_R_6_ARG": 1,
    "HAVE_GETITIMER": 1,
    "HAVE_GETLOADAVG": 1,
    "HAVE_GETLOGIN": 1,
    "HAVE_GETNAMEINFO": 1,
    "HAVE_GETPAGESIZE": 1,
    "HAVE_GETPEERNAME": 1,
    "HAVE_GETPGID": 1,
    "HAVE_GETPGRP": 1,
    "HAVE_GETPID": 1,
    "HAVE_GETPRIORITY": 1,
    "HAVE_GETPWENT": 1,
    "HAVE_GETPWNAM_R": 1,
    "HAVE_GETPWUID_R": 1,
    "HAVE_GETRANDOM": 1,
    "HAVE_GETRANDOM_SYSCALL": 1,
    "HAVE_GETRESGID": 1,
    "HAVE_GETRESUID": 1,
    "HAVE_GETSID": 1,
    "HAVE_GETSPENT": 1,
    "HAVE_GETSPNAM": 1,
    "HAVE_GETWD": 1,
    "HAVE_GLIBC_MEMMOVE_BUG": 0,
    "HAVE_GRP_H": 1,
    "HAVE_HSTRERROR": 1,
    "HAVE_HTOLE64": 1,
    "HAVE_HYPOT": 1,
    "HAVE_IEEEFP_H": 0,
    "HAVE_IF_NAMEINDEX": 1,
    "HAVE_INET_ATON": 1,
    "HAVE_INET_PTON": 1,
    "HAVE_INITGROUPS": 1,
    "HAVE_INTTYPES_H": 1,
    "HAVE_IO_H": 0,
    "HAVE_IPA_PURE_CONST_BUG": 0,
    "HAVE_KILL": 1,
    "HAVE_KILLPG": 1,
    "HAVE_KQUEUE": 0,
    "HAVE_LANGINFO_H": 1,
    "HAVE_LARGEFILE_SUPPORT": 0,
    "HAVE_LCHFLAGS": 0,
    "HAVE_LCHMOD": 0,
    "HAVE_LCHOWN": 1,
    "HAVE_LGAMMA": 1,
    "HAVE_LIBDL": 1,
    "HAVE_LIBDLD": 0,
    "HAVE_LIBIEEE": 0,
    "HAVE_LIBINTL_H": 1,
    "HAVE_LIBREADLINE": 1,
    "HAVE_LIBRESOLV": 0,
    "HAVE_LIBSENDFILE": 0,
    "HAVE_LIBUTIL_H": 0,
    "HAVE_LIBUUID": 1,
    "HAVE_LINK": 1,
    "HAVE_LINKAT": 1,
    "HAVE_LINUX_AUXVEC_H": 1,
    "HAVE_LINUX_CAN_BCM_H": 1,
    "HAVE_LINUX_CAN_H": 1,
    "HAVE_LINUX_CAN_J1939_H": 1,
    "HAVE_LINUX_CAN_RAW_FD_FRAMES": 1,
    "HAVE_LINUX_CAN_RAW_H": 1,
    "HAVE_LINUX_CAN_RAW_JOIN_FILTERS": 1,
    "HAVE_LINUX_MEMFD_H": 1,
    "HAVE_LINUX_NETLINK_H": 1,
    "HAVE_LINUX_QRTR_H": 1,
    "HAVE_LINUX_RANDOM_H": 1,
    "HAVE_LINUX_TIPC_H": 1,
    "HAVE_LINUX_VM_SOCKETS_H": 1,
    "HAVE_LINUX_WAIT_H": 1,
    "HAVE_LOCKF": 1,
    "HAVE_LOG1P": 1,
    "HAVE_LOG2": 1,
    "HAVE_LONG_DOUBLE": 1,
    "HAVE_LSTAT": 1,
    "HAVE_LUTIMES": 1,
    "HAVE_MADVISE": 1,
    "HAVE_MAKEDEV": 1,
    "HAVE_MBRTOWC": 1,
    "HAVE_MEMFD_CREATE": 1,
    "HAVE_MEMORY_H": 0,
    "HAVE_MEMRCHR": 1,
    "HAVE_MKDIRAT": 1,
    "HAVE_MKFIFO": 1,
    "HAVE_MKFIFOAT": 1,
    "HAVE_MKNOD": 1,
    "HAVE_MKNODAT": 1,
    "HAVE_MKTIME": 1,
    "HAVE_MMAP": 1,
    "HAVE_MREMAP": 1,
    "HAVE_NCURSES_H": 1,
    "HAVE_NDIR_H": 0,
    "HAVE_NETPACKET_PACKET_H": 1,
    "HAVE_NET_IF_H": 1,
    "HAVE_NICE": 1,
    "HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION": 0,
    "HAVE_OPENAT": 1,
    "HAVE_OPENPTY": 1,
    "HAVE_PATHCONF": 1,
    "HAVE_PAUSE": 1,
    "HAVE_PIPE2": 1,
    "HAVE_PLOCK": 0,
    "HAVE_POLL": 1,
    "HAVE_POLL_H": 1,
    "HAVE_POSIX_FADVISE": 1,
    "HAVE_POSIX_FALLOCATE": 1,
    "HAVE_POSIX_SPAWN": 1,
    "HAVE_POSIX_SPAWNP": 1,
    "HAVE_PREAD": 1,
    "HAVE_PREADV": 1,
    "HAVE_PREADV2": 1,
    "HAVE_PRLIMIT": 1,
    "HAVE_PROCESS_H": 0,
    "HAVE_PROTOTYPES": 1,
    "HAVE_PTHREAD_CONDATTR_SETCLOCK": 1,
    "HAVE_PTHREAD_DESTRUCTOR": 0,
    "HAVE_PTHREAD_GETCPUCLOCKID": 1,
    "HAVE_PTHREAD_H": 1,
    "HAVE_PTHREAD_INIT": 0,
    "HAVE_PTHREAD_KILL": 1,
    "HAVE_PTHREAD_SIGMASK": 1,
    "HAVE_PTY_H": 1,
    "HAVE_PWRITE": 1,
    "HAVE_PWRITEV": 1,
    "HAVE_PWRITEV2": 1,
    "HAVE_READLINK": 1,
    "HAVE_READLINKAT": 1,
    "HAVE_READV": 1,
    "HAVE_REALPATH": 1,
    "HAVE_RENAMEAT": 1,
    "HAVE_RL_APPEND_HISTORY": 1,
    "HAVE_RL_CATCH_SIGNAL": 1,
    "HAVE_RL_COMPLETION_APPEND_CHARACTER": 1,
    "HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK": 1,
    "HAVE_RL_COMPLETION_MATCHES": 1,
    "HAVE_RL_COMPLETION_SUPPRESS_APPEND": 1,
    "HAVE_RL_PRE_INPUT_HOOK": 1,
    "HAVE_RL_RESIZE_TERMINAL": 1,
    "HAVE_ROUND": 1,
    "HAVE_RTPSPAWN": 0,
    "HAVE_SCHED_GET_PRIORITY_MAX": 1,
    "HAVE_SCHED_H": 1,
    "HAVE_SCHED_RR_GET_INTERVAL": 1,
    "HAVE_SCHED_SETAFFINITY": 1,
    "HAVE_SCHED_SETPARAM": 1,
    "HAVE_SCHED_SETSCHEDULER": 1,
    "HAVE_SEM_CLOCKWAIT": 1,
    "HAVE_SEM_GETVALUE": 1,
    "HAVE_SEM_OPEN": 1,
    "HAVE_SEM_TIMEDWAIT": 1,
    "HAVE_SEM_UNLINK": 1,
    "HAVE_SENDFILE": 1,
    "HAVE_SETEGID": 1,
    "HAVE_SETEUID": 1,
    "HAVE_SETGID": 1,
    "HAVE_SETGROUPS": 1,
    "HAVE_SETHOSTNAME": 1,
    "HAVE_SETITIMER": 1,
    "HAVE_SETLOCALE": 1,
    "HAVE_SETPGID": 1,
    "HAVE_SETPGRP": 1,
    "HAVE_SETPRIORITY": 1,
    "HAVE_SETREGID": 1,
    "HAVE_SETRESGID": 1,
    "HAVE_SETRESUID": 1,
    "HAVE_SETREUID": 1,
    "HAVE_SETSID": 1,
    "HAVE_SETUID": 1,
    "HAVE_SETVBUF": 1,
    "HAVE_SHADOW_H": 1,
    "HAVE_SHM_OPEN": 1,
    "HAVE_SHM_UNLINK": 1,
    "HAVE_SIGACTION": 1,
    "HAVE_SIGALTSTACK": 1,
    "HAVE_SIGFILLSET": 1,
    "HAVE_SIGINFO_T_SI_BAND": 1,
    "HAVE_SIGINTERRUPT": 1,
    "HAVE_SIGNAL_H": 1,
    "HAVE_SIGPENDING": 1,
    "HAVE_SIGRELSE": 1,
    "HAVE_SIGTIMEDWAIT": 1,
    "HAVE_SIGWAIT": 1,
    "HAVE_SIGWAITINFO": 1,
    "HAVE_SNPRINTF": 1,
    "HAVE_SOCKADDR_ALG": 1,
    "HAVE_SOCKADDR_SA_LEN": 0,
    "HAVE_SOCKADDR_STORAGE": 1,
    "HAVE_SOCKETPAIR": 1,
    "HAVE_SPAWN_H": 1,
    "HAVE_SPLICE": 1,
    "HAVE_SSIZE_T": 1,
    "HAVE_STATVFS": 1,
    "HAVE_STAT_TV_NSEC": 1,
    "HAVE_STAT_TV_NSEC2": 0,
    "HAVE_STDARG_PROTOTYPES": 1,
    "HAVE_STDINT_H": 1,
    "HAVE_STDLIB_H": 1,
    "HAVE_STD_ATOMIC": 1,
    "HAVE_STRFTIME": 1,
    "HAVE_STRINGS_H": 1,
    "HAVE_STRING_H": 1,
    "HAVE_STRLCPY": 0,
    "HAVE_STROPTS_H": 0,
    "HAVE_STRSIGNAL": 1,
    "HAVE_STRUCT_PASSWD_PW_GECOS": 1,
    "HAVE_STRUCT_PASSWD_PW_PASSWD": 1,
    "HAVE_STRUCT_STAT_ST_BIRTHTIME": 0,
    "HAVE_STRUCT_STAT_ST_BLKSIZE": 1,
    "HAVE_STRUCT_STAT_ST_BLOCKS": 1,
    "HAVE_STRUCT_STAT_ST_FLAGS": 0,
    "HAVE_STRUCT_STAT_ST_GEN": 0,
    "HAVE_STRUCT_STAT_ST_RDEV": 1,
    "HAVE_STRUCT_TM_TM_ZONE": 1,
    "HAVE_SYMLINK": 1,
    "HAVE_SYMLINKAT": 1,
    "HAVE_SYNC": 1,
    "HAVE_SYSCONF": 1,
    "HAVE_SYSEXITS_H": 1,
    "HAVE_SYS_AUDIOIO_H": 0,
    "HAVE_SYS_AUXV_H": 1,
    "HAVE_SYS_BSDTTY_H": 0,
    "HAVE_SYS_DEVPOLL_H": 0,
    "HAVE_SYS_DIR_H": 0,
    "HAVE_SYS_ENDIAN_H": 0,
    "HAVE_SYS_EPOLL_H": 1,
    "HAVE_SYS_EVENTFD_H": 1,
    "HAVE_SYS_EVENT_H": 0,
    "HAVE_SYS_FILE_H": 1,
    "HAVE_SYS_IOCTL_H": 1,
    "HAVE_SYS_KERN_CONTROL_H": 0,
    "HAVE_SYS_LOADAVG_H": 0,
    "HAVE_SYS_LOCK_H": 0,
    "HAVE_SYS_MEMFD_H": 0,
    "HAVE_SYS_MKDEV_H": 0,
    "HAVE_SYS_MMAN_H": 1,
    "HAVE_SYS_MODEM_H": 0,
    "HAVE_SYS_NDIR_H": 0,
    "HAVE_SYS_PARAM_H": 1,
    "HAVE_SYS_POLL_H": 1,
    "HAVE_SYS_RANDOM_H": 1,
    "HAVE_SYS_RESOURCE_H": 1,
    "HAVE_SYS_SELECT_H": 1,
    "HAVE_SYS_SENDFILE_H": 1,
    "HAVE_SYS_SOCKET_H": 1,
    "HAVE_SYS_STATVFS_H": 1,
    "HAVE_SYS_STAT_H": 1,
    "HAVE_SYS_SYSCALL_H": 1,
    "HAVE_SYS_SYSMACROS_H": 1,
    "HAVE_SYS_SYS_DOMAIN_H": 0,
    "HAVE_SYS_TERMIO_H": 0,
    "HAVE_SYS_TIMES_H": 1,
    "HAVE_SYS_TIME_H": 1,
    "HAVE_SYS_TYPES_H": 1,
    "HAVE_SYS_UIO_H": 1,
    "HAVE_SYS_UN_H": 1,
    "HAVE_SYS_UTSNAME_H": 1,
    "HAVE_SYS_WAIT_H": 1,
    "HAVE_SYS_XATTR_H": 1,
    "HAVE_TCGETPGRP": 1,
    "HAVE_TCSETPGRP": 1,
    "HAVE_TEMPNAM": 1,
    "HAVE_TERMIOS_H": 1,
    "HAVE_TERM_H": 1,
    "HAVE_TGAMMA": 1,
    "HAVE_TIMEGM": 1,
    "HAVE_TIMES": 1,
    "HAVE_TMPFILE": 1,
    "HAVE_TMPNAM": 1,
    "HAVE_TMPNAM_R": 1,
    "HAVE_TM_ZONE": 1,
    "HAVE_TRUNCATE": 1,
    "HAVE_TZNAME": 0,
    "HAVE_UCS4_TCL": 0,
    "HAVE_UNAME": 1,
    "HAVE_UNISTD_H": 1,
    "HAVE_UNLINKAT": 1,
    "HAVE_USABLE_WCHAR_T": 0,
    "HAVE_UTIL_H": 0,
    "HAVE_UTIMENSAT": 1,
    "HAVE_UTIMES": 1,
    "HAVE_UTIME_H": 1,
    "HAVE_UUID_CREATE": 0,
    "HAVE_UUID_ENC_BE": 0,
    "HAVE_UUID_GENERATE_TIME_SAFE": 1,
    "HAVE_UUID_H": 0,
    "HAVE_UUID_UUID_H": 1,
    "HAVE_VFORK": 1,
    "HAVE_WAIT3": 1,
    "HAVE_WAIT4": 1,
    "HAVE_WAITID": 1,
    "HAVE_WAITPID": 1,
    "HAVE_WCHAR_H": 1,
    "HAVE_WCSCOLL": 1,
    "HAVE_WCSFTIME": 1,
    "HAVE_WCSXFRM": 1,
    "HAVE_WMEMCMP": 1,
    "HAVE_WORKING_TZSET": 1,
    "HAVE_WRITEV": 1,
    "HAVE_ZLIB_COPY": 1,
    "HAVE__GETPTY": 0,
    "HOST_GNU_TYPE": "x86_64-pc-linux-gnu",
    "INCLDIRSTOMAKE": "/usr/include /usr/include /usr/include/python3.10 /usr/include/python3.10",
    "INCLUDEDIR": "/usr/include",
    "INCLUDEPY": "/usr/include/python3.10",
    "INSTALL": "/usr/bin/install -c",
    "INSTALL_DATA": "/usr/bin/install -c -m 644",
    "INSTALL_PROGRAM": "/usr/bin/install -c",
    "INSTALL_SCRIPT": "/usr/bin/install -c",
    "INSTALL_SHARED": "/usr/bin/install -c -m 755",
    "INSTSONAME": "libpython3.10.so.1.0",
    "IO_H": "Modules/_io/_iomodule.h",
    "IO_OBJS": "\\",
    "LDCXXSHARED": "x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions",
    "LDFLAGS": "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   ",
    "LDFLAGS_NODIST": "",
    "LDLIBRARY": "libpython3.10.so",
    "LDLIBRARYDIR": "",
    "LDSHARED": "x86_64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions      -g -fwrapv -O2   ",
    "LDVERSION": "3.10",
    "LIBC": "",
    "LIBDEST": "/usr/lib/python3.10",
    "LIBDIR": "/usr/lib/x86_64-linux-gnu",
    "LIBFFI_INCLUDEDIR": "",
    "LIBM": "-lm",
    "LIBOBJDIR": "Python/",
    "LIBOBJS": "",
    "LIBPC": "/usr/lib/x86_64-linux-gnu/pkgconfig",
    "LIBPL": "/usr/lib/python3.10/config-3.10-x86_64-linux-gnu",
    "LIBPYTHON": "",
    "LIBRARY": "libpython3.10.a",
    "LIBRARY_DEPS": "libpython3.10.a libpython3.10.so libpython3.so",
    "LIBRARY_OBJS": "\\",
    "LIBRARY_OBJS_OMIT_FROZEN": "\\",
    "LIBS": "-lcrypt -ldl  -lm",
    "LIBSUBDIRS": "asyncio \\",
    "LINKCC": "x86_64-linux-gnu-gcc",
    "LINKFORSHARED": "-Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions",
    "LIPO_32BIT_FLAGS": "",
    "LIPO_INTEL64_FLAGS": "",
    "LLVM_PROF_ERR": "no",
    "LLVM_PROF_FILE": "",
    "LLVM_PROF_MERGER": "true",
    "LN": "ln",
    "LOCALMODLIBS": "-lexpat                       -L/usr/lib -lz                       -lexpat",
    "MACHDEP": "linux",
    "MACHDEP_OBJS": "",
    "MACHDESTLIB": "/usr/lib/x86_64-linux-gnu/python3.10",
    "MACOSX_DEPLOYMENT_TARGET": "",
    "MAINCC": "x86_64-linux-gnu-gcc",
    "MAJOR_IN_MKDEV": 0,
    "MAJOR_IN_SYSMACROS": 1,
    "MAKESETUP": "../Modules/makesetup",
    "MANDIR": "/usr/share/man",
    "MKDIR_P": "/bin/mkdir -p",
    "MODBUILT_NAMES": "array  cmath  math  _struct  _random  _elementtree  _pickle  _datetime  _bisect  _heapq  _statistics  unicodedata  fcntl  spwd  grp  select  _csv  _socket  _posixsubprocess  _md5  _sha1  _sha256  _sha512  _sha3  _blake2  syslog  binascii  zlib  posix  errno  pwd  _sre  _codecs  _weakref  _functools  _operator  _collections  _abc  itertools  atexit  _signal  _stat  time  _thread  _locale  _io  faulthandler  _tracemalloc  _symtable  pyexpat  xxsubtype",
    "MODDISABLED_NAMES": "",
    "MODLIBS": "-lexpat                       -L/usr/lib -lz                       -lexpat",
    "MODOBJS": "$(sort   Modules/arraymodule.o  Modules/cmathmodule.o Modules/_math.o  Modules/mathmodule.o Modules/_math.o  Modules/_struct.o  Modules/_randommodule.o  Modules/_elementtree.o  Modules/_pickle.o  Modules/_datetimemodule.o  Modules/_bisectmodule.o  Modules/_heapqmodule.o  Modules/_statisticsmodule.o  Modules/unicodedata.o  Modules/fcntlmodule.o  Modules/spwdmodule.o  Modules/grpmodule.o  Modules/selectmodule.o  Modules/_csv.o  Modules/socketmodule.o  Modules/_posixsubprocess.o  Modules/md5module.o  Modules/sha1module.o  Modules/sha256module.o  Modules/sha512module.o  Modules/sha3module.o  Modules/blake2module.o Modules/blake2b_impl.o Modules/blake2s_impl.o  Modules/syslogmodule.o  Modules/binascii.o  Modules/zlibmodule.o  Modules/posixmodule.o  Modules/errnomodule.o  Modules/pwdmodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/_weakref.o  Modules/_functoolsmodule.o  Modules/_operator.o  Modules/_collectionsmodule.o  Modules/_abc.o  Modules/itertoolsmodule.o  Modules/atexitmodule.o  Modules/signalmodule.o  Modules/_stat.o  Modules/timemodule.o  Modules/_threadmodule.o  Modules/_localemodule.o  Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o  Modules/faulthandler.o  Modules/_tracemalloc.o  Modules/symtablemodule.o  Modules/pyexpat.o  Modules/xxsubtype.o)",
    "MODULE_OBJS": "\\",
    "MULTIARCH": "x86_64-linux-gnu",
    "MULTIARCH_CPPFLAGS": '-DMULTIARCH=\\"x86_64-linux-gnu\\"',
    "MVWDELCH_IS_EXPRESSION": 1,
    "NO_AS_NEEDED": "-Wl,--no-as-needed",
    "OBJECT_OBJS": "\\",
    "OPENSSL_INCLUDES": "",
    "OPENSSL_LDFLAGS": "",
    "OPENSSL_LIBS": "-lssl -lcrypto",
    "OPENSSL_RPATH": "",
    "OPT": "-DNDEBUG -g -fwrapv -O2 -Wall",
    "OTHER_LIBTOOL_OPT": "",
    "PACKAGE_BUGREPORT": 0,
    "PACKAGE_NAME": 0,
    "PACKAGE_STRING": 0,
    "PACKAGE_TARNAME": 0,
    "PACKAGE_URL": 0,
    "PACKAGE_VERSION": 0,
    "PARSER_HEADERS": "\\",
    "PARSER_OBJS": "\\ \\ Parser/myreadline.o Parser/tokenizer.o",
    "PEGEN_HEADERS": "\\",
    "PEGEN_OBJS": "\\",
    "PGO_PROF_GEN_FLAG": "-fprofile-generate",
    "PGO_PROF_USE_FLAG": "",
    "PLATLIBDIR": "lib",
    "POBJS": "\\",
    "POSIX_SEMAPHORES_NOT_ENABLED": 0,
    "PROFILE_TASK": "-m test --pgo --timeout=1200",
    "PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT": 1,
    "PTHREAD_SYSTEM_SCHED_SUPPORTED": 1,
    "PURIFY": "",
    "PY3LIBRARY": "libpython3.so",
    "PYLONG_BITS_IN_DIGIT": 0,
    "PYTHON": "python",
    "PYTHONFRAMEWORK": "",
    "PYTHONFRAMEWORKDIR": "no-framework",
    "PYTHONFRAMEWORKINSTALLDIR": "",
    "PYTHONFRAMEWORKPREFIX": "",
    "PYTHONPATH": "",
    "PYTHON_FOR_BUILD": "./python -E",
    "PYTHON_FOR_REGEN": "",
    "PYTHON_HEADERS": "\\",
    "PYTHON_OBJS": "\\",
    "PY_BUILTIN_HASHLIB_HASHES": '"md5,sha1,sha256,sha512,sha3,blake2"',
    "PY_BUILTIN_MODULE_CFLAGS": "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE_BUILTIN",
    "PY_CFLAGS": "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2   ",
    "PY_CFLAGS_NODIST": "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal",
    "PY_COERCE_C_LOCALE": 1,
    "PY_CORE_CFLAGS": "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE",
    "PY_CORE_LDFLAGS": "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   ",
    "PY_CPPFLAGS": "-IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2",
    "PY_ENABLE_SHARED": 1,
    "PY_FORMAT_SIZE_T": '"z"',
    "PY_LDFLAGS": "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   ",
    "PY_LDFLAGS_NODIST": "",
    "PY_SSL_DEFAULT_CIPHERS": 1,
    "PY_SSL_DEFAULT_CIPHER_STRING": 0,
    "PY_STDMODULE_CFLAGS": "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC",
    "Py_DEBUG": 0,
    "Py_ENABLE_SHARED": 1,
    "Py_HASH_ALGORITHM": 0,
    "Py_TRACE_REFS": 0,
    "QUICKTESTOPTS": "-x test_subprocess test_io test_lib2to3 \\",
    "READELF": "readelf",
    "RESSRCDIR": "Mac/Resources/framework",
    "RETSIGTYPE": "void",
    "RUNSHARED": "LD_LIBRARY_PATH=/build/python3.10-rtDYKr/python3.10-3.10.12/build-shared",
    "SCRIPTDIR": "/usr/lib",
    "SETPGRP_HAVE_ARG": 0,
    "SHELL": "/bin/sh",
    "SHLIBS": "-lcrypt -ldl  -lm",
    "SHLIB_SUFFIX": ".so",
    "SHM_NEEDS_LIBRT": 0,
    "SIGNED_RIGHT_SHIFT_ZERO_FILLS": 0,
    "SITEPATH": "",
    "SIZEOF_DOUBLE": 8,
    "SIZEOF_FLOAT": 4,
    "SIZEOF_FPOS_T": 16,
    "SIZEOF_INT": 4,
    "SIZEOF_LONG": 8,
    "SIZEOF_LONG_DOUBLE": 16,
    "SIZEOF_LONG_LONG": 8,
    "SIZEOF_OFF_T": 8,
    "SIZEOF_PID_T": 4,
    "SIZEOF_PTHREAD_KEY_T": 4,
    "SIZEOF_PTHREAD_T": 8,
    "SIZEOF_SHORT": 2,
    "SIZEOF_SIZE_T": 8,
    "SIZEOF_TIME_T": 8,
    "SIZEOF_UINTPTR_T": 8,
    "SIZEOF_VOID_P": 8,
    "SIZEOF_WCHAR_T": 4,
    "SIZEOF__BOOL": 1,
    "SOABI": "cpython-310-x86_64-linux-gnu",
    "SRCDIRS": "Parser Objects Python Modules Modules/_io Programs",
    "SRC_GDB_HOOKS": "../Tools/gdb/libpython.py",
    "STATIC_LIBPYTHON": 1,
    "STDC_HEADERS": 1,
    "STRICT_SYSV_CURSES": "/* Don't use ncurses extensions */",
    "STRIPFLAG": "-s",
    "SUBDIRS": "",
    "SUBDIRSTOO": "Include Lib Misc",
    "SYSLIBS": "-lm",
    "SYS_SELECT_WITH_SYS_TIME": 1,
    "TCLTK_INCLUDES": "-I/usr/include/tcl8.6",
    "TCLTK_LIBS": "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6",
    "TESTOPTS": "",
    "TESTPATH": "",
    "TESTPYTHON": "LD_LIBRARY_PATH=/build/python3.10-rtDYKr/python3.10-3.10.12/build-shared ./python",
    "TESTPYTHONOPTS": "",
    "TESTRUNNER": "LD_LIBRARY_PATH=/build/python3.10-rtDYKr/python3.10-3.10.12/build-shared ./python ../Tools/scripts/run_tests.py",
    "TESTSUBDIRS": "ctypes/test \\",
    "TESTTIMEOUT": 1200,
    "TEST_MODULES": "yes",
    "THREAD_STACK_SIZE": 0,
    "TIMEMODULE_LIB": 0,
    "TIME_WITH_SYS_TIME": 1,
    "TM_IN_SYS_TIME": 0,
    "TZPATH": "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo",
    "UNICODE_DEPS": "\\",
    "UNIVERSALSDK": "",
    "UPDATE_FILE": "../Tools/scripts/update_file.py",
    "USE_COMPUTED_GOTOS": 1,
    "VERSION": "3.10",
    "VPATH": "..",
    "WHEEL_PKG_DIR": "/usr/share/python-wheels/",
    "WINDOW_HAS_FLAGS": 1,
    "WITH_DECIMAL_CONTEXTVAR": 1,
    "WITH_DOC_STRINGS": 1,
    "WITH_DTRACE": 1,
    "WITH_DYLD": 0,
    "WITH_EDITLINE": 0,
    "WITH_LIBINTL": 0,
    "WITH_NEXT_FRAMEWORK": 0,
    "WITH_PYMALLOC": 1,
    "WITH_VALGRIND": 0,
    "X87_DOUBLE_ROUNDING": 0,
    "XMLLIBSUBDIRS": "xml xml/dom xml/etree xml/parsers xml/sax",
    "abs_builddir": "/build/python3.10-rtDYKr/python3.10-3.10.12/build-shared",
    "abs_srcdir": "/build/python3.10-rtDYKr/python3.10-3.10.12/build-shared/..",
    "datarootdir": "/usr/share",
    "srcdir": "/usr/lib/python3.10/config-3.10-x86_64-linux-gnu",
    "SO": ".cpython-310-x86_64-linux-gnu.so",
    "userbase": "/home/falinux/.local",
    "multiarchsubdir": "/x86_64-linux-gnu",
}

 

 대충검색해봐도 아키텍쳐 설정은 없는데 SSE, MMX, AVX 관련 설정은 없는 것 같고

-march=cpu-type
Generate instructions for the machine type cpu-type. In contrast to -mtune=cpu-type, which merely tunes the generated code for the specified cpu-type, -march=cpu-type allows GCC to generate code that may not run at all on processors other than the one indicated. Specifying -march=cpu-type implies -mtune=cpu-type, except where noted otherwise.

The choices for cpu-type are:

‘native’
This selects the CPU to generate code for at compilation time by determining the processor type of the compiling machine. Using -march=native enables all instruction subsets supported by the local machine (hence the result might not run on different machines). Using -mtune=native produces code optimized for the local machine under the constraints of the selected instruction set.

‘x86-64’
A generic CPU with 64-bit extensions, MMX, SSE, SSE2, and FXSR instruction set support.

[링크 : https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html]

 

그렇다고 해서 -O2 까지만 보이니 vectorization은 지원안할꺼 같고...

Vectorization in GCC is enabled at -O3. That's why at -O0, you see only the ordinary scalar SSE2 instructions (movsd, addsd, etc). 

[링크 : https://stackoverflow.com/questions/7919304/gcc-sse-code-optimization]

'Programming > python(파이썬)' 카테고리의 다른 글

pip 패키지 완전 삭제하기  (0) 2025.08.13
pip install cmake build multi core support  (0) 2025.08.13
python용 얼굴탐지, 인식  (0) 2025.08.04
python struct  (0) 2024.12.13
python matplotlib 동시 여러개 띄우기  (0) 2024.05.29
Posted by 구차니

테스트 해보니 haar 보다 프레임은 안나오고(한 10프레임?)

cpu 점유율은 1개 조지지만, 전체 로드율은 낮은 듯

 

[링크 : https://github.com/ageitgey/face_recognition]

     [링크 : https://wikidocs.net/227902]

[링크 : https://dlib.net/]

 

haar cascade

[링크 : https://bkshin.tistory.com/entry/컴퓨터-비전-1-하르-캐스케이드-얼굴-검출-Haar-Cascade-Face-Detection]



face_recognition 패키지

import cv2
import face_recognition

webcam = cv2.VideoCapture(0)

if not webcam.isOpened():
    print("Could not open webcam")
    exit()

while webcam.isOpened():
    status, frame = webcam.read()

    if status:
        face_locations = face_recognition.face_locations(frame)
        print(face_locations)
        if len(face_locations) > 0:
            for iter in face_locations:
                cv2.rectangle(frame, (iter[1], iter[0]), (iter[3], iter[2]), (0,255,0), 2)
        cv2.imshow("test", frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

webcam.release()
cv2.destroyAllWindows()

 

opencv2 / haar cascade

import cv2
import time

dirname = '/home/falinux/.local/lib/python3.10/site-packages/cv2/data/'

face_cascade = cv2.CascadeClassifier(dirname + 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(dirname + 'haarcascade_eye.xml')

cam = cv2.VideoCapture(0)
# cam.set(3, 160) # CV_CAP_PROP_FRAME_WIDTH
# cam.set(4, 120) # CV_CAP_PROP_FRAME_HEIGHT
# cam.set(5, 20) # CV_CAP_PROP_FPS
# print(cam.get(3))
# print(cam.get(4))
# print(cam.get(5))

while True:
 ret_val, img = cam.read()
 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
 
 faces = face_cascade.detectMultiScale(gray, 1.05, 5)
 print(faces)
 for (x, y, w, h) in faces:
  img = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
  roi_gray = gray[y:y+h, x:x+w]
  roi_color = img[y:y+h, x:x+w]
  eyes = eye_cascade.detectMultiScale(roi_gray)
  for (ex, ey, ew, eh) in eyes:
   cv2.rectangle(roi_color, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)

 time.sleep(0.15)
 cv2.imshow("Cam Viewer", img)
#  cv2.imshow("Cam Viewer gray", gray)
 if cv2.waitKey(1) == 27:
     break

'Programming > python(파이썬)' 카테고리의 다른 글

pip install cmake build multi core support  (0) 2025.08.13
python 빌드 정보  (0) 2025.08.04
python struct  (0) 2024.12.13
python matplotlib 동시 여러개 띄우기  (0) 2024.05.29
python matplotlib 그래프 갱신하기  (0) 2024.05.27
Posted by 구차니

gpt 에서 c로 짠 코드를 python으로 바꾸어 달라니 희한한(?) 문법이 보여 검색해보니

패킹/언패킹이라는 모듈인 듯.

3f 하면 float 3개 인것 같은데

gpt에서는 왜 3f3f3f 이런식으로 했을까 걍 9f 하면 되지 않나 -ㅁ-?

 

 

[링크 : https://docs.python.org/ko/3/library/struct.html]

[링크 : https://plummmm.tistory.com/176]

Posted by 구차니

창을 figure라고 하는 것 같은데

openCV는 창을 명시하고 그릴 데이터를 지정한다면

openGL은 선택을 하고 그리는 거라 순서가 필요한데

matplotlib은 openGL 처럼 그릴곳을 선택하고 그리는 컨셉을 사용한 듯.

 

>>> plt.ion() # 인터랙티브모드 전환
<matplotlib.pyplot._IonContext object at 0x71521b249b40>
>>> plt.figure(1) # 여기서 Figure 1 이라는 창이 열림
<Figure size 640x480 with 0 Axes>
>>> plt.plot([1,2,3]) # Figure 1 창에 그래프 그려짐
[<matplotlib.lines.Line2D object at 0x7152194aead0>]
>>> plt.figure(2) # 여기서 Figure 2 이라는 창이 열림
<Figure size 640x480 with 0 Axes>
>>> plt.plot([2,3,4,5]) # Figure 2 창에 그래프 그려짐
[<matplotlib.lines.Line2D object at 0x71521a9c2410>]
>>> plt.figure(1) # UI 상으로 변동은 없으나 Figure 1 창에 그리도록 선택
<Figure size 640x480 with 1 Axes>
>>> plt.plot([2,3,4,5]) # Figure 1 창에 추가로 그려짐
[<matplotlib.lines.Line2D object at 0x71521a9eca30>]

[링크 : https://matplotlib.org/stable/gallery/subplots_axes_and_figures/multiple_figs_demo.html]

 

하나의 창 안에서 나누는건 subplot 인듯

[링크 : https://stackoverflow.com/questions/41210823/display-multiple-images-in-subplots]

'Programming > python(파이썬)' 카테고리의 다른 글

python용 얼굴탐지, 인식  (0) 2025.08.04
python struct  (0) 2024.12.13
python matplotlib 그래프 갱신하기  (0) 2024.05.27
python soundcard 라이브러리  (0) 2024.05.21
python 사운드 장치  (0) 2024.05.10
Posted by 구차니

subplot을 생성하고 해도 되고

plt.plot() 으로 바로 한 것에 plt.cla() 해도 된다.

 

>>> fig, ax = plt.subplots()
>>> ax.plot([0,1,2,3,4,5])

>>> ax.clf()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'AxesSubplot' object has no attribute 'clf'. Did you mean: 'cla'?

>>> ax.cla()

[링크 : https://m.blog.naver.com/hsy2569/221814138095]

'Programming > python(파이썬)' 카테고리의 다른 글

python struct  (0) 2024.12.13
python matplotlib 동시 여러개 띄우기  (0) 2024.05.29
python soundcard 라이브러리  (0) 2024.05.21
python 사운드 장치  (0) 2024.05.10
docker를 이용하여 python 에서 opencv 돌리기  (0) 2024.05.08
Posted by 구차니

linux 에서는 pulseaudio 쓰는 라이브러리가 유리하겠지?

[링크 : https://pypi.org/project/SoundCard/]

[링크 : https://soundcard.readthedocs.io/en/latest/]

 

Posted by 구차니