amykyta3 / tclpython

Tcl package that provides access to a Python interpreter
GNU General Public License v3.0
15 stars 1 forks source link

Compile and test failure #9

Open mocallins opened 2 years ago

mocallins commented 2 years ago

Raspberry pi Zero

[pidev]:</home/pi/build/tclpython/> cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

[pidev]:</home/pi/build/tclpython/> make PKG_NAME=tclpython3 test TCLLIBPATH=build/tclpython3/tclpython3 tclsh test/test.tcl tclpython3 ---- Package search paths ---- build/tclpython3/tclpython3 /usr/share/tcltk/tcl8.6 /usr/share/tcltk /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk/arm-linux-gnueabihf /usr/lib/tcltk /usr/lib/tcltk/tcl8.6 ---- Loading package tclpython3 ---- couldn't load file "build/tclpython3/tclpython3/tclpython3.so.5.0": build/tclpython3/tclpython3/tclpython3.so.5.0: undefined symbol: Py_NoSiteFlag while executing "load "build/tclpython3/tclpython3/tclpython3.so.5.0"" ("package ifneeded tclpython3 5.0" script) invoked from within "package require $tclpython" (file "test/test.tcl" line 34) make: *** [Makefile:35: test] Error 1

Any ideas ?

amykyta3 commented 2 years ago

Did some experimenting and it looks like the last supported version is Python3.7. Something changed in cpython since then.

mocallins commented 2 years ago

Need anything from me, to dive deeper ?

amykyta3 commented 2 years ago

I was able to reproduce the issue on my end so I think I have what I need. I suspect it is something to do with the libpython linking changes in Py3.8 described here (3rd bullet point): https://docs.python.org/3.8/whatsnew/3.8.html#changes-in-the-c-api On top of that, I saw some deprecation warnings on py3.9 and newer that also ought to be addressed.

Might be a few weeks before I get around to fixing due to my availability.

On Tue, Aug 23, 2022 at 8:54 AM Mike Collins @.***> wrote:

Need anything from me, to dive deeper ?

— Reply to this email directly, view it on GitHub https://github.com/amykyta3/tclpython/issues/9#issuecomment-1224268209, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC3W6I6KHKU7HXMONWBBRULV2TX3RANCNFSM57J5LU3A . You are receiving this because you commented.Message ID: @.***>

mocallins commented 2 years ago

Okay No problem, Thank you

sm-shaw commented 2 years ago

Have been looking at something similar and seeing the same error tclpython3.so.5.0: undefined symbol: Py_NoSiteFlag testing tclpython as well

Updating the Makefile adding --embed got it working for me.

LDFLAGS+= $(shell $(PYTHON_CONFIG) --ldflags --embed)

hammerdb>package require tclpython3
5.0
hammerdb>set interpreter [python3::interp new]
python0
hammerdb>$interpreter exec {print("Hello World")}
Hello World

Without --embed you get the following dependencies

ldd tclpython3.so.5.0 
    linux-vdso.so.1 (0x00007ffd07364000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff033abb000)
    /lib64/ld-linux-x86-64.so.2 (0x00007ff033cce000)

With you get:

ldd tclpython3.so.5.0 
    linux-vdso.so.1 (0x00007ffc0a96f000)
    libpython3.8.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 (0x00007efe6d4c8000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efe6d2d6000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007efe6d2a8000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007efe6d28c000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efe6d269000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007efe6d261000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007efe6d25c000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007efe6d10d000)
    /lib64/ld-linux-x86-64.so.2 (0x00007efe6da3f000)
mocallins commented 2 years ago

Have been looking at something similar and seeing the same error tclpython3.so.5.0: undefined symbol: Py_NoSiteFlag testing tclpython as well

Updating the Makefile adding --embed got it working for me.

LDFLAGS+= $(shell $(PYTHON_CONFIG) --ldflags --embed)

hammerdb>package require tclpython3
5.0
hammerdb>set interpreter [python3::interp new]
python0
hammerdb>$interpreter exec {print("Hello World")}
Hello World

Without --embed you get the following dependencies

ldd tclpython3.so.5.0 
  linux-vdso.so.1 (0x00007ffd07364000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff033abb000)
  /lib64/ld-linux-x86-64.so.2 (0x00007ff033cce000)

With you get:

ldd tclpython3.so.5.0 
  linux-vdso.so.1 (0x00007ffc0a96f000)
  libpython3.8.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython3.8.so.1.0 (0x00007efe6d4c8000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efe6d2d6000)
  libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007efe6d2a8000)
  libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007efe6d28c000)
  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efe6d269000)
  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007efe6d261000)
  libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007efe6d25c000)
  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007efe6d10d000)
  /lib64/ld-linux-x86-64.so.2 (0x00007efe6da3f000)

Yes this helped for me as well. At least with the simlpe test. But at least the library loaded

amykyta3 commented 2 years ago

Thanks @sm-shaw for finding the solution! Latest Makefile should work. I also cleaned up some segfaults that would show up on py3.9 and newer during deletion of the interpreter. All versions seem to be working now on my end: https://github.com/amykyta3/tclpython/actions

mocallins commented 2 years ago

Cloned the latest copy and performed steps. Getting a sehmentation fault upon trying to delete the created interpreter. Also minor typo in the README.md and on the web page, the last command below.

[ pidev ] home/pi % package require tclpython3 5.0 [ pidev ] home/pi % set interpreter [python3::interp new] python0 [ pidev ] home/pi % $interpreter exec {print("Hello World")} Hello World [ pidev ] home/pi % puts [$interpreter eval 3/2.0] 1.5 [ pidev ] home/pi % python::interp delete $interpreter invalid command name "python::interp" while evaluating python::interp delete $interpreter [ pidev ] home/pi % python3::interp delete $interpreter Segmentation fault

amykyta3 commented 2 years ago

Odd. works fine on all active versions of Python on Ubuntu 20.04 and 22.04

I dont have a raspbian setup handy to try this. Could you paste the output of:

import sysconfig
import pprint
pprint.pprint(sysconfig.get_config_vars())
mocallins commented 2 years ago

my goodness, so  much output i can't capture it all for copy / paste, lol

On Wednesday, August 31, 2022 at 09:15:35 PM CDT, Alex Mykyta ***@***.***> wrote:  

Odd. works fine on all active versions of Python on Ubuntu 20.04 and 22.04

I dont have a raspbian setup handy to try this. Could you paste the output of: import sysconfig import pprint pprint.pprint(sysconfig.get_config_vars()) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

mocallins commented 2 years ago

ok pretty simple redirect

output.txt

mocallins commented 2 years ago

{'ABIFLAGS': '', 'AC_APPLE_UNIVERSAL_BUILD': 0, 'AIX_BUILDDATE': 0, 'AIX_GENUINE_CPLUSPLUS': 0, 'ALT_SOABI': 0, 'ANDROID_API_LEVEL': 0, 'AR': 'arm-linux-gnueabihf-gcc-ar', 'ARFLAGS': 'rcs', 'BASECFLAGS': '-Wno-unused-result -Wsign-compare', 'BASECPPFLAGS': '-IObjects -IInclude -IPython', 'BASEMODLIBS': '', 'BINDIR': '/usr/bin', 'BINLIBDEST': '/usr/lib/python3.9', 'BLDLIBRARY': '-lpython3.9', 'BLDSHARED': 'arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 ' '-Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 ', 'BUILDEXE': '', 'BUILDPYTHON': 'python', 'BUILD_GNU_TYPE': 'armv7l-unknown-linux-gnueabihf', 'BYTESTR_DEPS': '\', 'CC': 'arm-linux-gnueabihf-gcc -pthread', 'CCSHARED': '-fPIC', 'CFLAGS': '-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g ' '-ffile-prefix-map=/python3.9-3.9.2=. -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 -ffile-prefix-map=/python3.9-3.9.2=. ' '-fstack-protector-strong -Wformat ' '-Werror=format-security', 'CONFIGURE_CFLAGS_NODIST': '-std=c99 -Wextra -Wno-unused-result ' '-Wno-unused-parameter ' '-Wno-missing-field-initializers ' '-Werror=implicit-function-declaration ' '-fvisibility=hidden', 'CONFIGURE_CPPFLAGS': '-Wdate-time -D_FORTIFY_SOURCE=2', 'CONFIGURE_LDFLAGS': ' -Wl,-z,relro -g -fwrapv -O2 ', 'CONFIGURE_LDFLAGS_NODIST': '', 'CONFIG_ARGS': "'--enable-shared' '--prefix=/usr' '--enable-ipv6' " "'--enable-loadable-sqlite-extensions' " "'--with-dbmliborder=bdb:gdbm' '--with-computed-gotos' " "'--without-ensurepip' '--with-system-expat' '--with-dtrace' " "'--with-system-libmpdec' '--with-system-ffi' " "'CC=arm-linux-gnueabihf-gcc' 'CFLAGS=-g " '-ffile-prefix-map=/python3.9-3.9.2=. ' "-fstack-protector-strong -Wformat -Werror=format-security ' " "'LDFLAGS= -Wl,-z,relro -g -fwrapv -O2 ' " "'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'", 'CONFINCLUDEDIR': '/usr/include', 'CONFINCLUDEPY': '/usr/include/python3.9', 'COREPYTHONPATH': '', 'COVERAGE_INFO': '/python3.9-3.9.2/build-shared/coverage.info', 'COVERAGE_REPORT': '/python3.9-3.9.2/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': 'arm-linux-gnueabihf-g++ -pthread', 'DESTDIRS': '/usr /usr/lib /usr/lib/python3.9 /usr/lib/python3.9/lib-dynload', 'DESTLIB': '/usr/lib/python3.9', 'DESTPATH': '', 'DESTSHARED': '/usr/lib/python3.9/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, 'EXPORTSFROM': '', 'EXPORTSYMS': '', 'EXTRATESTOPTS': '', 'EXT_SUFFIX': '.cpython-39-arm-linux-gnueabihf.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_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_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': 0, 'HAVE_GCC_ASM_FOR_X87': 0, 'HAVE_GCC_UINT128_T': 0, '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': 1, '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_LINK': 1, 'HAVE_LINKAT': 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': 1, '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_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_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_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_STRDUP': 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_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_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': 1, '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_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_X509_VERIFY_PARAM_SET1_HOST': 1, 'HAVE_ZLIB_COPY': 1, 'HAVEGETPTY': 0, 'HOST_GNU_TYPE': 'armv7l-unknown-linux-gnueabihf', 'INCLDIRSTOMAKE': '/usr/include /usr/include /usr/include/python3.9 ' '/usr/include/python3.9', 'INCLUDEDIR': '/usr/include', 'INCLUDEPY': '/usr/include/python3.9', '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.9.so.1.0', 'IO_H': 'Modules/_io/_iomodule.h', 'IO_OBJS': '\', 'LDCXXSHARED': 'arm-linux-gnueabihf-g++ -pthread -shared -Wl,-O1 ' '-Wl,-Bsymbolic-functions', 'LDFLAGS': ' -Wl,-z,relro -g -fwrapv -O2 ', 'LDFLAGS_NODIST': '', 'LDLIBRARY': 'libpython3.9.so', 'LDLIBRARYDIR': '', 'LDSHARED': 'arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 ' '-Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 ', 'LDVERSION': '3.9', 'LIBC': '', 'LIBDEST': '/usr/lib/python3.9', 'LIBDIR': '/usr/lib', 'LIBFFI_INCLUDEDIR': '', 'LIBM': '-lm', 'LIBOBJDIR': 'Python/', 'LIBOBJS': '', 'LIBPC': '/usr/lib/arm-linux-gnueabihf/pkgconfig', 'LIBPL': '/usr/lib/python3.9/config-3.9-arm-linux-gnueabihf', 'LIBPYTHON': '', 'LIBRARY': 'libpython3.9.a', 'LIBRARY_OBJS': '\', 'LIBRARY_OBJS_OMIT_FROZEN': '\', 'LIBS': '-lcrypt -lpthread -ldl -lutil -lm', 'LIBSUBDIRS': 'tkinter tkinter/test tkinter/test/test_tkinter \', 'LINKCC': 'arm-linux-gnueabihf-gcc -pthread', 'LINKFORSHARED': '-Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions', 'LIPO_32BIT_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/python3.9', 'MACOSX_DEPLOYMENT_TARGET': '', 'MAINCC': 'arm-linux-gnueabihf-gcc -pthread', '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 _peg_parser ' '_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/_peg_parser.o ' 'Modules/symtablemodule.o Modules/pyexpat.o Modules/xxsubtype.o)', 'MODULE_OBJS': '\', 'MULTIARCH': 'arm-linux-gnueabihf', 'MULTIARCH_CPPFLAGS': '-DMULTIARCH=\"arm-linux-gnueabihf\"', 'MVWDELCH_IS_EXPRESSION': 1, 'NO_AS_NEEDED': '-Wl,--no-as-needed', 'OBJECT_OBJS': '\', 'OPENSSL_INCLUDES': '', 'OPENSSL_LDFLAGS': '', 'OPENSSL_LIBS': '-lssl -lcrypto', '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/parsetok.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', '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_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 ' '-ffile-prefix-map=/python3.9-3.9.2=. ' '-fstack-protector-strong -Wformat ' '-Werror=format-security -g -fwrapv -O2 ' '-std=c99 -Wextra -Wno-unused-result ' '-Wno-unused-parameter ' '-Wno-missing-field-initializers ' '-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 -ffile-prefix-map=/python3.9-3.9.2=. ' '-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 ' '-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 -ffile-prefix-map=/python3.9-3.9.2=. ' '-fstack-protector-strong -Wformat -Werror=format-security ' '-g -fwrapv -O2 -std=c99 -Wextra -Wno-unused-result ' '-Wno-unused-parameter -Wno-missing-field-initializers ' '-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,-z,relro -g -fwrapv -O2 ', 'PY_CPPFLAGS': '-IObjects -IInclude -IPython -I. -I../Include -Wdate-time ' '-D_FORTIFY_SOURCE=2', 'PY_FORMAT_SIZE_T': '"z"', 'PY_LDFLAGS': ' -Wl,-z,relro -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 -ffile-prefix-map=/python3.9-3.9.2=. ' '-fstack-protector-strong -Wformat ' '-Werror=format-security -g -fwrapv -O2 -std=c99 ' '-Wextra -Wno-unused-result -Wno-unused-parameter ' '-Wno-missing-field-initializers ' '-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=/python3.9-3.9.2/build-shared', 'SCRIPTDIR': '/usr/lib', 'SETPGRP_HAVE_ARG': 0, 'SGI_ABI': '@SGI_ABI@', 'SHELL': '/bin/sh', 'SHLIBS': '-lcrypt -lpthread -ldl -lutil -lm', 'SHLIB_SUFFIX': '.so', 'SHM_NEEDS_LIBRT': 1, 'SIGNED_RIGHT_SHIFT_ZERO_FILLS': 0, 'SITEPATH': '', 'SIZEOF_DOUBLE': 8, 'SIZEOF_FLOAT': 4, 'SIZEOF_FPOS_T': 16, 'SIZEOF_INT': 4, 'SIZEOF_LONG': 4, 'SIZEOF_LONG_DOUBLE': 8, 'SIZEOF_LONG_LONG': 8, 'SIZEOF_OFF_T': 8, 'SIZEOF_PID_T': 4, 'SIZEOF_PTHREAD_KEY_T': 4, 'SIZEOF_PTHREAD_T': 4, 'SIZEOF_SHORT': 2, 'SIZEOF_SIZE_T': 4, 'SIZEOF_TIME_T': 4, 'SIZEOF_UINTPTR_T': 4, 'SIZEOF_VOID_P': 4, 'SIZEOF_WCHAR_T': 4, 'SIZEOFBOOL': 1, 'SO': '.cpython-39-arm-linux-gnueabihf.so', 'SOABI': 'cpython-39-arm-linux-gnueabihf', 'SRCDIRS': 'Parser Parser/pegen Objects Python Modules Modules/_io Programs', 'SRC_GDB_HOOKS': '../Tools/gdb/libpython.py', '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': '', 'TCLTK_LIBS': '', 'TESTOPTS': '', 'TESTPATH': '', 'TESTPYTHON': 'LD_LIBRARY_PATH=/python3.9-3.9.2/build-shared ./python', 'TESTPYTHONOPTS': '', 'TESTRUNNER': 'LD_LIBRARY_PATH=/python3.9-3.9.2/build-shared ./python ' '../Tools/scripts/run_tests.py', 'TESTTIMEOUT': 1200, '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': 'python3.9 ../Tools/scripts/update_file.py', 'USE_COMPUTED_GOTOS': 1, 'VERSION': '3.9', 'VPATH': '..', 'WINDOW_HAS_FLAGS': 1, 'WITH_DECIMAL_CONTEXTVAR': 1, 'WITH_DOC_STRINGS': 1, 'WITH_DTRACE': 1, 'WITH_DYLD': 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', 'abiflags': '', 'abs_builddir': '/python3.9-3.9.2/build-shared', 'abs_srcdir': '/python3.9-3.9.2/build-shared/..', 'base': '/usr', 'datarootdir': '/usr/share', 'exec_prefix': '/usr', 'installed_base': '/usr', 'installed_platbase': '/usr', 'multiarchsubdir': '/arm-linux-gnueabihf', 'platbase': '/usr', 'platlibdir': 'lib', 'prefix': '/usr', 'projectbase': '/usr/bin', 'py_version': '3.9.2', 'py_version_nodot': '39', 'py_version_short': '3.9', 'srcdir': '/usr/lib/python3.9/config-3.9-arm-linux-gnueabihf', 'userbase': '/home/pi/.local'}

mocallins commented 2 years ago

just at a python prompt ?or inside tclpython ?

On Wednesday, August 31, 2022 at 09:15:35 PM CDT, Alex Mykyta ***@***.***> wrote:  

Odd. works fine on all active versions of Python on Ubuntu 20.04 and 22.04

I dont have a raspbian setup handy to try this. Could you paste the output of: import sysconfig import pprint pprint.pprint(sysconfig.get_config_vars()) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

manoo431 commented 10 months ago

Hi, I'm facing a similar issue while importing the Python 'math' package.

% set py [python3::interp new] % $py exec {import math} Traceback (most recent call last): File "", line 1, in ImportError: /opt/rh/rh-python38/root/usr/lib64/python3.8/lib-dynload/math.cpython-38-x86_64-linux-gnu.so: undefined symbol: PyFloat_Type

The 'import math' works in a standalone Python shell, but not in the Tcl shell with tclpython. Any ideas how to fix this?

ldd ~/tclpython3/tclpython3.so.5.1 linux-vdso.so.1 => (0x00007fff7d9d9000) libpython3.8.so.rh-python38-1.0 => /opt/rh/rh-python38/root/usr/lib64/libpython3.8.so.rh-python38-1.0 (0x00007f215a263000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f215a02c000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2159e10000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f2159c0c000) libutil.so.1 => /lib64/libutil.so.1 (0x00007f2159a09000) libm.so.6 => /lib64/libm.so.6 (0x00007f2159707000) libc.so.6 => /lib64/libc.so.6 (0x00007f2159339000) libfreebl3.so => /lib64/libfreebl3.so (0x00007f2159136000) /lib64/ld-linux-x86-64.so.2 (0x00007f215a61e000)

ldd ..../bin/python linux-vdso.so.1 => (0x00007ffd0d3b9000) libpython3.9.so.1.0 => ..../python/3.9.7/lib/libpython3.9.so.1.0 (0x00007fb8b96ae000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb8b9477000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb8b925b000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fb8b9057000) libutil.so.1 => /lib64/libutil.so.1 (0x00007fb8b8e54000) libm.so.6 => /lib64/libm.so.6 (0x00007fb8b8b52000) libc.so.6 => /lib64/libc.so.6 (0x00007fb8b8784000) libfreebl3.so => /lib64/libfreebl3.so (0x00007fb8b8581000) /lib64/ld-linux-x86-64.so.2 (0x00007fb8b9a55000)

sm-shaw commented 10 months ago

There is a modified version of libtclpy here used by the HammerDB project - as shown below this works correctly. So you may be able to apply some of the changes to libtcly to tclpython for it also to import correctly.

$ ./hammerdbcli py
HammerDB CLI v4.9
Copyright (C) 2003-2023 Steve Shaw
Type "help()" for a list of commands
hammerdb>>>import math
hammerdb>>>math.isnan(float('nan'))
True
hammerdb>>>
manoo431 commented 10 months ago

That works, thank you!