Resolving dependencies in 2.0 takes forever
Description
Install cleanrl 's dependencies via poetry install takes forever to resolve dependencies
Workarounds
using poetry==1.8.5 works fine
root@dsw-498899-84cf4b4bc5-hg2qz:/mnt/workspace/cleanrl# conda activate base
(base) root@dsw-498899-84cf4b4bc5-hg2qz:/mnt/workspace/cleanrl# poetry install
Skipping virtualenv creation, as specified in config file.
Updating dependencies
Resolving dependencies... Downloading https://mirrors.aliyun.com/pypi/packages/fe/58/1641614c17fcd7293d250c2cad48011baa1ecef4f109ce2ea027aa8e4898/jax-0.4.8.tar.gz#sha256=0811Resolving dependencies... Downloading https://mirrors.aliyun.com/pypi/packages/02/12/17873498f8da2a61cc17a62e6323c64d783f3bfa331798631661518906b7/expt-0.4.2.tar.gz#sha256=4a7Resolving dependencies... (192.4s)
Package operations: 28 installs, 61 updates, 0 removals
- Downgrading numpy (1.26.3 -> 1.24.4)
- Updating certifi (2023.11.17 /home/conda/feedstock_root/build_artifacts/certifi_1700303426725/work/certifi -> 2024.12.14)
- Updating charset-normalizer (2.0.4 /tmp/build/80754af9/charset-normalizer_1630003229654/work -> 3.4.1)
- Updating idna (3.4 /croot/idna_1666125576474/work -> 3.10)
- Updating markupsafe (2.1.3 -> 2.1.5)
- Installing nvidia-nvjitlink-cu12 (12.4.127)
- Updating packaging (23.1 /croot/packaging_1693575174725/work -> 24.2)
- Updating pyasn1 (0.5.1 -> 0.6.1)
- Updating six (1.16.0 -> 1.17.0)
- Installing smmap (5.0.2)
- Updating typing-extensions (4.9.0 -> 4.12.2)
- Updating urllib3 (1.26.16 /croot/urllib3_1686163155763/work -> 2.3.0)
- Updating absl-py (2.0.0 -> 2.1.0)
- Updating cachetools (5.3.2 -> 5.5.0)
- Updating cloudpickle (3.0.0 -> 3.1.0)
- Downgrading contourpy (1.2.0 -> 1.1.1)
- Updating filelock (3.13.1 -> 3.16.1)
- Updating fonttools (4.47.0 -> 4.55.3)
- Installing gitdb (4.0.12)
- Installing gym-notices (0.0.8)
- Updating kiwisolver (1.4.5 -> 1.4.7)
- Installing nvidia-cublas-cu12 (12.4.5.8): Downloading... 3%
- Installing nvidia-cublas-cu12 (12.4.5.8): Downloading... 57%
- Installing nvidia-cublas-cu12 (12.4.5.8): Installing...
- Installing nvidia-cublas-cu12 (12.4.5.8)
- Installing nvidia-cusparse-cu12 (12.3.1.170)
- Updating pillow (10.2.0 -> 10.4.0)
- Updating platformdirs (4.1.0 -> 4.3.6)
- Updating pyasn1-modules (0.3.0 -> 0.4.1)
- Updating pygments (2.17.2 -> 2.19.0)
- Updating pyparsing (3.1.1 -> 3.1.4)
- Updating python-dateutil (2.8.2 -> 2.9.0.post0)
- Updating pytz (2023.3.post1 -> 2024.2)
- Updating pyyaml (6.0.1 -> 6.0.2)
- Updating requests (2.31.0 /croot/requests_1690400202158/work -> 2.32.3)
- Downgrading rsa (4.9 -> 4.7.2)
- Updating setuptools (68.0.0 -> 75.3.0)
- Updating tzdata (2023.4 -> 2024.2)
- Updating click (8.1.7 -> 8.1.8)
- Installing commonmark (0.9.1)
- Updating distlib (0.3.8 -> 0.3.9)
- Installing docker-pycreds (0.4.0)
- Installing farama-notifications (0.0.4)
- Updating fsspec (2023.10.0 -> 2024.12.0): Installing...
- Updating fsspec (2023.10.0 -> 2024.12.0)
- Installing gitpython (3.1.44)
- Updating google-auth (2.26.1 -> 2.37.0)
- Installing gym (0.23.1): Preparing...
- Installing gym (0.23.1)
- Updating imageio (2.33.1 -> 2.35.1)
- Downgrading imageio-ffmpeg (0.4.9 /home/conda/feedstock_root/build_artifacts/imageio-ffmpeg_1694632425602/work -> 0.3.0): Downloading... 60%
- Downgrading imageio-ffmpeg (0.4.9 /home/conda/feedstock_root/build_artifacts/imageio-ffmpeg_1694632425602/work -> 0.3.0): Installing...
- Downgrading imageio-ffmpeg (0.4.9 /home/conda/feedstock_root/build_artifacts/imageio-ffmpeg_1694632425602/work -> 0.3.0)
- Installing jax-jumpy (1.0.0)
- Updating jinja2 (3.1.2 -> 3.1.5)
- Updating markdown (3.5.1 -> 3.7)
- Updating matplotlib (3.5.3 -> 3.7.5)
- Updating networkx (2.8.4 -> 3.1)
- Installing nvidia-cuda-cupti-cu12 (12.4.127)
- Installing nvidia-cuda-nvrtc-cu12 (12.4.127)
- Installing nvidia-cuda-runtime-cu12 (12.4.127)
- Installing nvidia-cudnn-cu12 (9.1.0.70): Downloading... 8%
- Installing nvidia-cudnn-cu12 (9.1.0.70): Downloading... 19%
- Installing nvidia-cudnn-cu12 (9.1.0.70): Downloading... 29%
- Installing nvidia-cudnn-cu12 (9.1.0.70): Downloading... 31%
- Installing nvidia-cudnn-cu12 (9.1.0.70): Installing...
- Installing nvidia-cudnn-cu12 (9.1.0.70)
- Installing nvidia-cufft-cu12 (11.2.1.3)
- Installing nvidia-curand-cu12 (10.3.5.147)
- Installing nvidia-cusolver-cu12 (11.6.1.9)
- Installing nvidia-nccl-cu12 (2.21.5)
- Installing nvidia-nvtx-cu12 (12.4.127)
- Downgrading pandas (2.1.4 -> 2.0.3)
- Installing pathtools (0.1.2)
- Updating protobuf (3.20.3 -> 4.25.5)
- Updating psutil (5.9.7 -> 6.1.1)
- Updating requests-oauthlib (1.3.1 -> 2.0.0)
- Installing sentry-sdk (2.19.2)
- Installing setproctitle (1.3.4)
- Updating sympy (1.12 -> 1.13.1)
- Updating tqdm (4.65.0 /croot/tqdm_1679561862951/work -> 4.67.1)
- Updating triton (2.1.0 -> 3.1.0)
- Updating docstring-parser (0.15 -> 0.16)
- Updating grpcio (1.60.0 -> 1.69.0)
- Installing gymnasium (0.28.1)
- Updating identify (2.5.33 -> 2.6.1)
- Updating nodeenv (1.8.0 -> 1.9.1)
- Downgrading rich (13.7.0 -> 11.2.0)
- Updating shtab (1.6.5 -> 1.7.1)
- Updating torch (2.1.2+cu121 -> 2.5.1)
- Updating virtualenv (20.25.0 -> 20.28.1)
- Installing wandb (0.13.11)
- Updating werkzeug (2.2.3 -> 3.0.6)
- Updating wheel (0.41.2 -> 0.45.1)
- Downgrading huggingface-hub (0.20.2 -> 0.11.1)
- Downgrading pre-commit (3.6.0 -> 2.21.0)
- Installing pygame (2.1.0)
- Installing stable-baselines3 (2.0.0)
- Updating tenacity (8.2.3 -> 8.5.0)
- Downgrading tensorboard (2.15.1 -> 2.14.0)
- Downgrading tyro (0.6.3 -> 0.5.18)
Writing lock file
Installing the current project: cleanrl (2.0.0b1)
(base) root@dsw-498899-84cf4b4bc5-hg2qz:/mnt/workspace/cleanrl# poetry -V
Poetry (version 1.8.5)
(base) root@dsw-498899-84cf4b4bc5-hg2qz:/mnt/workspace/cleanrl#
Poetry Installation Method
install.python-poetry.org
Operating System
Ubuntu 22.04.2 LTS
Poetry Version
2.0.0
Poetry Configuration
cache-dir = "/root/.cache/pypoetry"
installer.max-workers = null
installer.no-binary = null
installer.only-binary = null
installer.parallel = true
installer.re-resolve = true
keyring.enabled = true
requests.max-retries = 0
solver.lazy-wheel = true
system-git-client = false
virtualenvs.create = false
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "/opt/conda/envs"
virtualenvs.prompt = "{project_name}-py{python_version}"
virtualenvs.use-poetry-python = false
Python Sysconfig
sysconfig.log
root@dsw-498793-6c5c78668-ps57p:/tmp# python -m sysconfig
Platform: "linux-x86_64"
Python version: "3.10"
Current installation scheme: "posix_prefix"
Paths:
data = "/opt/conda"
include = "/opt/conda/include/python3.10"
platinclude = "/opt/conda/include/python3.10"
platlib = "/opt/conda/lib/python3.10/site-packages"
platstdlib = "/opt/conda/lib/python3.10"
purelib = "/opt/conda/lib/python3.10/site-packages"
scripts = "/opt/conda/bin"
stdlib = "/opt/conda/lib/python3.10"
Variables:
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 = "ar"
ARFLAGS = "rcs"
BASECFLAGS = "-Wno-unused-result -Wsign-compare"
BASECPPFLAGS = "-IObjects -IInclude -IPython"
BASEMODLIBS = ""
BINDIR = "/opt/conda/bin"
BINLIBDEST = "/opt/conda/lib/python3.10"
BLDLIBRARY = "libpython3.10.a"
BLDSHARED = "gcc -pthread -B /opt/conda/compiler_compat -shared -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib"
BUILDEXE = ""
BUILDPYTHON = "python"
BUILD_GNU_TYPE = "x86_64-conda_cos6-linux-gnu"
BYTESTR_DEPS = "\"
CC = "gcc -pthread -B /opt/conda/compiler_compat"
CCSHARED = "-fPIC"
CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/include -fPIC -O2 -isystem /opt/conda/include "
CFLAGSFORSHARED = ""
CFLAGS_ALIASING = ""
CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
CONFIGURE_CFLAGS = "-fPIC -O2 -isystem /opt/conda/include "
CONFIGURE_CFLAGS_NODIST = "-fno-semantic-interposition -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden"
CONFIGURE_CPPFLAGS = "-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include"
CONFIGURE_LDFLAGS = "-Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib"
CONFIGURE_LDFLAGS_NODIST = "-fno-semantic-interposition -g"
CONFIG_ARGS = "'--prefix=/opt/conda''--build=x86_64-conda_cos6-linux-gnu''--host=x86_64-conda_cos6-linux-gnu''--enable-ipv6''--with-ensurepip=no''--with-tzpath=/opt/conda/share/zoneinfo:/opt/conda/share/tzinfo''--with-computed-gotos''--with-system-ffi''--enable-loadable-sqlite-extensions''--with-tcltk-includes=-I/opt/conda/include''--with-tcltk-libs=-L/opt/conda/lib -ltcl8.6 -ltk8.6''--with-platlibdir=lib''--with-lto''--enable-optimizations''-oldincludedir=/croot/python-split_1694437906621/_build_env/x86_64-conda_cos6-linux-gnu/sysroot/usr/include''--disable-shared''PROFILE_TASK=-m test --pgo''build_alias=x86_64-conda_cos6-linux-gnu''host_alias=x86_64-conda_cos6-linux-gnu''MACHDEP=linux''CC=gcc''CFLAGS= -fPIC -O2 -isystem /opt/conda/include ''LDFLAGS= -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib''CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include''CPP=/croot/python-split_1694437906621/_build_env/bin/cpp''PKG_CONFIG_PATH=/opt/conda/lib/pkgconfig'"
CONFINCLUDEDIR = "/opt/conda/include"
CONFINCLUDEPY = "/opt/conda/include/python3.10"
COREPYTHONPATH = ""
COVERAGE_INFO = "/croot/python-split_1694437906621/work/build-static/coverage.info"
COVERAGE_REPORT = "/croot/python-split_1694437906621/work/build-static/lcov-report"
COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report""
CPPFLAGS = "-IObjects -IInclude -IPython -I. -I/croot/python-split_1694437906621/work/Include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include"
CXX = "g++ -pthread -B /opt/conda/compiler_compat"
DESTDIRS = "/opt/conda /opt/conda/lib /opt/conda/lib/python3.10 /opt/conda/lib/python3.10/lib-dynload"
DESTLIB = "/opt/conda/lib/python3.10"
DESTPATH = ""
DESTSHARED = "/opt/conda/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 = ""
DTRACE_DEPS = "\"
DTRACE_HEADERS = ""
DTRACE_OBJS = ""
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 = "no"
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 = "0"
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 = "0"
HAVE_COMPUTED_GOTOS = "1"
HAVE_CONFSTR = "1"
HAVE_CONIO_H = "0"
HAVE_COPYSIGN = "1"
HAVE_COPY_FILE_RANGE = "0"
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 = "0"
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 = "0"
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 = "0"
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 = "0"
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 = "0"
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 = "0"
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_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 = "0"
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 = "0"
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 = "0"
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 = "0"
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 = "1"
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-conda_cos6-linux-gnu"
INCLDIRSTOMAKE = "/opt/conda/include /opt/conda/include /opt/conda/include/python3.10 /opt/conda/include/python3.10"
INCLUDEDIR = "/opt/conda/include"
INCLUDEPY = "/opt/conda/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.a"
IO_H = "Modules/_io/_iomodule.h"
IO_OBJS = "\"
LDCXXSHARED = "g++ -pthread -B /opt/conda/compiler_compat -shared"
LDFLAGS = "-Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib"
LDLIBRARY = "libpython3.10.a"
LDLIBRARYDIR = ""
LDSHARED = "gcc -pthread -B /opt/conda/compiler_compat -shared -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib"
LDVERSION = "3.10"
LIBC = ""
LIBDEST = "/opt/conda/lib/python3.10"
LIBDIR = "/opt/conda/lib"
LIBFFI_INCLUDEDIR = "/opt/conda/include"
LIBM = "-lm"
LIBOBJDIR = "Python/"
LIBOBJS = ""
LIBPC = "/opt/conda/lib/pkgconfig"
LIBPL = "/opt/conda/lib/python3.10/config-3.10-x86_64-linux-gnu"
LIBPYTHON = ""
LIBRARY = "libpython3.10.a"
LIBRARY_DEPS = "libpython3.10.a"
LIBRARY_OBJS = "\"
LIBRARY_OBJS_OMIT_FROZEN = "\"
LIBS = "-lcrypt -lpthread -ldl -lutil -lm"
LIBSUBDIRS = "asyncio \"
LINKCC = "gcc -pthread -B /opt/conda/compiler_compat"
LINKFORSHARED = "-Xlinker -export-dynamic"
LIPO_32BIT_FLAGS = ""
LIPO_INTEL64_FLAGS = ""
LLVM_PROF_ERR = "no"
LLVM_PROF_FILE = ""
LLVM_PROF_MERGER = "true"
LN = "ln"
LOCALMODLIBS = ""
MACHDEP = "linux"
MACHDEP_OBJS = ""
MACHDESTLIB = "/opt/conda/lib/python3.10"
MACOSX_DEPLOYMENT_TARGET = ""
MAINCC = "gcc -pthread -B /opt/conda/compiler_compat"
MAJOR_IN_MKDEV = "0"
MAJOR_IN_SYSMACROS = "0"
MAKESETUP = "/croot/python-split_1694437906621/work/Modules/makesetup"
MANDIR = "/opt/conda/share/man"
MKDIR_P = "/usr/bin/mkdir -p"
MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype"
MODDISABLED_NAMES = ""
MODLIBS = ""
MODOBJS = "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/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 = "-I/opt/conda/include"
OPENSSL_LDFLAGS = "-L/opt/conda/lib"
OPENSSL_LIBS = "-lssl -lcrypto"
OPENSSL_RPATH = ""
OPT = "-DNDEBUG -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"
PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1"
PTHREAD_SYSTEM_SCHED_SUPPORTED = "1"
PURIFY = ""
PY3LIBRARY = ""
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_BUILD_ENVIRON = ""
PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2""
PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/include -fPIC -O2 -isystem /opt/conda/include -fno-semantic-interposition -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I/croot/python-split_1694437906621/work/Include/internal -IObjects -IInclude -IPython -I. -I/croot/python-split_1694437906621/work/Include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -DPy_BUILD_CORE_BUILTIN"
PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/include -fPIC -O2 -isystem /opt/conda/include "
PY_CFLAGS_NODIST = "-fno-semantic-interposition -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I/croot/python-split_1694437906621/work/Include/internal"
PY_COERCE_C_LOCALE = "1"
PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/include -fPIC -O2 -isystem /opt/conda/include -fno-semantic-interposition -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I/croot/python-split_1694437906621/work/Include/internal -IObjects -IInclude -IPython -I. -I/croot/python-split_1694437906621/work/Include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -DPy_BUILD_CORE"
PY_CORE_LDFLAGS = "-Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib -fno-semantic-interposition -g"
PY_CPPFLAGS = "-IObjects -IInclude -IPython -I. -I/croot/python-split_1694437906621/work/Include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include"
PY_ENABLE_SHARED = "0"
PY_FORMAT_SIZE_T = ""z""
PY_LDFLAGS = "-Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib -Wl,-rpath,/opt/conda/lib -Wl,-rpath-link,/opt/conda/lib -L/opt/conda/lib"
PY_LDFLAGS_NODIST = "-fno-semantic-interposition -g"
PY_SSL_DEFAULT_CIPHERS = "1"
PY_SSL_DEFAULT_CIPHER_STRING = "0"
PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/include -fPIC -O2 -isystem /opt/conda/include -fno-semantic-interposition -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I/croot/python-split_1694437906621/work/Include/internal -IObjects -IInclude -IPython -I. -I/croot/python-split_1694437906621/work/Include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include"
Py_DEBUG = "0"
Py_ENABLE_SHARED = "0"
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 = ""
SCRIPTDIR = "/opt/conda/lib"
SETPGRP_HAVE_ARG = "0"
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 = "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"
SO = ".cpython-310-x86_64-linux-gnu.so"
SOABI = "cpython-310-x86_64-linux-gnu"
SRCDIRS = "Parser Objects Python Modules Modules/_io Programs"
SRC_GDB_HOOKS = "/croot/python-split_1694437906621/work/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/opt/conda/include"
TCLTK_LIBS = "-L/opt/conda/lib -ltcl8.6 -ltk8.6"
TESTOPTS = ""
TESTPATH = ""
TESTPYTHON = "./python"
TESTPYTHONOPTS = ""
TESTRUNNER = "./python /croot/python-split_1694437906621/work/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 = "/opt/conda/share/zoneinfo:/opt/conda/share/tzinfo"
UNICODE_DEPS = "\"
UNIVERSALSDK = ""
UPDATE_FILE = "/croot/python-split_1694437906621/work/Tools/scripts/update_file.py"
USE_COMPUTED_GOTOS = "1"
VERSION = "3.10"
VPATH = "/croot/python-split_1694437906621/work"
WHEEL_PKG_DIR = ""
WINDOW_HAS_FLAGS = "1"
WITH_DECIMAL_CONTEXTVAR = "1"
WITH_DOC_STRINGS = "1"
WITH_DTRACE = "0"
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"
abiflags = ""
abs_builddir = "/croot/python-split_1694437906621/work/build-static"
abs_srcdir = "/croot/python-split_1694437906621/work"
base = "/opt/conda"
datarootdir = "/opt/conda/share"
exec_prefix = "/opt/conda"
installed_base = "/opt/conda"
installed_platbase = "/opt/conda"
platbase = "/opt/conda"
platlibdir = "lib"
prefix = "/opt/conda"
projectbase = "/opt/conda/bin"
py_version = "3.10.13"
py_version_nodot = "310"
py_version_nodot_plat = ""
py_version_short = "3.10"
srcdir = "/opt/conda/lib/python3.10/config-3.10-x86_64-linux-gnu"
userbase = "/root/.local"
Example pyproject.toml
[tool.poetry]
name = "cleanrl"
version = "2.0.0b1"
description = "High-quality single file implementation of Deep Reinforcement Learning algorithms with research-friendly features"
authors = ["Costa Huang <[email protected]>"]
packages = [
{ include = "cleanrl" },
{ include = "cleanrl_utils" },
]
keywords = ["reinforcement", "machine", "learning", "research"]
license="MIT"
readme = "README.md"
[tool.poetry.dependencies]
python = ">=3.8,<3.11"
tensorboard = "^2.10.0"
wandb = "^0.13.11"
gym = "0.23.1"
torch = ">=1.12.1"
stable-baselines3 = "2.0.0"
gymnasium = ">=0.28.1"
moviepy = "^1.0.3"
pygame = "2.1.0"
huggingface-hub = "^0.11.1"
rich = "<12.0"
tenacity = "^8.2.2"
tyro = "^0.5.10"
pyyaml = "^6.0.1"
ale-py = {version = "0.8.1", optional = true}
AutoROM = {extras = ["accept-rom-license"], version = "~0.4.2", optional = true}
opencv-python = {version = "^4.6.0.66", optional = true}
procgen = {version = "^0.10.7", optional = true}
pytest = {version = "^7.1.3", optional = true}
mujoco = {version = "<=2.3.3", optional = true}
imageio = {version = "^2.14.1", optional = true}
mkdocs-material = {version = "^8.4.3", optional = true}
markdown-include = {version = "^0.7.0", optional = true}
openrlbenchmark = {version = "^0.1.1b4", optional = true}
jax = {version = "0.4.8", optional = true}
jaxlib = {version = "0.4.7", optional = true}
flax = {version = "0.6.8", optional = true}
optuna = {version = "^3.0.1", optional = true}
optuna-dashboard = {version = "^0.7.2", optional = true}
envpool = {version = "^0.6.4", optional = true}
PettingZoo = {version = "1.18.1", optional = true}
SuperSuit = {version = "3.4.0", optional = true}
multi-agent-ale-py = {version = "0.1.11", optional = true}
boto3 = {version = "^1.24.70", optional = true}
awscli = {version = "^1.31.0", optional = true}
shimmy = {version = ">=1.1.0", optional = true}
dm-control = {version = ">=1.0.10", optional = true}
h5py = {version = ">=3.7.0", optional = true}
optax = {version = "0.1.4", optional = true}
chex = {version = "0.1.5", optional = true}
numpy = ">=1.21.6"
[tool.poetry.group.dev.dependencies]
pre-commit = "^2.20.0"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.extras]
atari = ["ale-py", "AutoROM", "opencv-python", "shimmy"]
procgen = ["procgen"]
plot = ["pandas", "seaborn"]
pytest = ["pytest"]
mujoco = ["mujoco", "imageio"]
jax = ["jax", "jaxlib", "flax"]
docs = ["mkdocs-material", "markdown-include", "openrlbenchmark"]
envpool = ["envpool"]
optuna = ["optuna", "optuna-dashboard"]
pettingzoo = ["PettingZoo", "SuperSuit", "multi-agent-ale-py"]
cloud = ["boto3", "awscli"]
dm_control = ["shimmy", "mujoco", "dm-control", "h5py"]
# dependencies for algorithm variant (useful when you want to run a specific algorithm)
dqn = []
dqn_atari = ["ale-py", "AutoROM", "opencv-python"]
dqn_jax = ["jax", "jaxlib", "flax"]
dqn_atari_jax = [
"ale-py", "AutoROM", "opencv-python", # atari
"jax", "jaxlib", "flax" # jax
]
c51 = []
c51_atari = ["ale-py", "AutoROM", "opencv-python"]
c51_jax = ["jax", "jaxlib", "flax"]
c51_atari_jax = [
"ale-py", "AutoROM", "opencv-python", # atari
"jax", "jaxlib", "flax" # jax
]
ppo_atari_envpool_xla_jax_scan = [
"ale-py", "AutoROM", "opencv-python", # atari
"jax", "jaxlib", "flax", # jax
"envpool", # envpool
]
qdagger_dqn_atari_impalacnn = [
"ale-py", "AutoROM", "opencv-python"
]
qdagger_dqn_atari_jax_impalacnn = [
"ale-py", "AutoROM", "opencv-python", # atari
"jax", "jaxlib", "flax", # jax
]
[[tool.poetry.source]]
name = "aliyun"
url = "https://mirrors.aliyun.com/pypi/simple"
priority = "primary"
Poetry Runtime Logs
Super large. Can not upload. generated via `poetry install -vvv | tee /tmp/p.log`
root@dsw-498793-6c5c78668-ps57p:/tmp# ll -trh
总计 132M
drwxr-xr-x 1 root root 4.0K Jan 6 09:21 ../
drwx------ 2 root root 4.0K Jan 6 13:57 tmpfbxagxq5_kernels/
-rw-r--r-- 1 root root 0 Jan 6 13:57 wow_what_a_coincidence
-rw------- 1 root root 0 Jan 6 13:57 stdout-stderr---supervisor-oi3so2gc.log
drwx------ 33 root root 12K Jan 6 13:57 _MEIZhlMUp/
drwx------ 3 root root 4.0K Jan 6 13:57 tmp9omelb31/
-rw------- 1 root root 30K Jan 6 15:05 stdout-stdout---supervisor-zagcr3vz.log
srwxr-xr-x 1 root root 0 Jan 6 15:05 vscode-ipc-8702339b-3baa-4dfe-8dfd-26f2b4d1d897.sock=
srwxr-xr-x 1 root root 0 Jan 6 15:05 vscode-git-8511e23733.sock=
drwxrwxrwx 5 root root 4.0K Jan 6 15:33 ./
-rw-r--r-- 1 root root 132M Jan 6 15:34 p.log
poetry 1.8.5 also takes a long time to resolve this one for me.
most likely all that has happened is that the cache format has changed in the new release, so poetry 2.0 cannot use your poetry 1.8.5 cache. In that case the second and subsequent runs will be fast again.
poetry 1.8.5 also takes a long time to resolve this one for me.
most likely all that has happened is that the cache format has changed in the new release, so poetry 2.0 cannot use your poetry 1.8.5 cache. In that case the second and subsequent runs will be fast again.
@dimbleby I was setting up a brand new docker env (no poetry installed before), so the situation you mentioned is not my case.
I tried installing 1.8.5 in another pod instance(dsw-498899-84cf4b4bc5-hg2qz) without poetry installed (2.0.0 was tried in dsw-498793-6c5c78668-ps57p), so that the installation got done in less than 5 minutes
well then I do not reproduce: poetry 1.8.5 also takes a long time to resolve this one for me (with an empty cache).
I see no difference in the new release.
either way the usual problem in such cases is awscli / boto3 / botocore - Amazon like to release thousands of versions of the last of these, which can cause resolvers to have to do a lot of backtracking.
Probably if you raise the lower bounds on Amazon-ecosystem dependencies that will reduce your exposure to this.
Take it back, this actually is a regression - though one complicated by the problem being slow to solve even without the change.
Here is a simplified repro:
[tool.poetry]
name = "foo"
version = "1.0.0"
description = ""
authors = []
keywords = []
license = "MIT"
readme = "README.md"
[tool.poetry.dependencies]
python = ">=3.8,<3.11"
opencv-python = {version = "^4.6.0.66", optional = true}
ale-py = { version = "0.8.1", optional = true }
[tool.poetry.extras]
extra01 = ["ale-py"]
extra02 = ["ale-py"]
extra03 = ["ale-py"]
extra04 = ["ale-py"]
extra05 = ["ale-py"]
extra06 = ["ale-py"]
extra07 = ["ale-py"]
extra08 = ["ale-py"]
extra09 = ["ale-py"]
extra10 = ["ale-py"]
extra11 = ["ale-py"]
extra12 = ["ale-py"]
extra13 = ["ale-py"]
extra14 = ["ale-py"]
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
and we are getting stuck in the new code that wants to maintain markers during resolution so that it can write them to the lock file #9427. Because: the markers that we calculate are long and unwieldy, and converting them to and from CNF and DNF is exponentially expensive
@radoering
Can confirm there seems to be some regression going on.
When generating the lock file from the following pyproject.toml, it takes about 39s with poetry 1.8.5 using poetry lock. Generating the lock file from the same pyproject.toml, poetry lock --regenerate was still running when I killed it at around 1800s (30mn).
Poetry Installation Method: pipx Operating System: MacOS 15.2 Poetry Version: 2.0.0 Poetry Config:
cache-dir = "/Users/simon/Library/Caches/pypoetry"
installer.max-workers = null
installer.no-binary = null
installer.only-binary = null
installer.parallel = true
installer.re-resolve = true
keyring.enabled = true
requests.max-retries = 0
solver.lazy-wheel = true
system-git-client = false
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/simon/Library/Caches/pypoetry/virtualenvs
virtualenvs.prompt = "{project_name}-py{python_version}"
virtualenvs.use-poetry-python = false
pyproject.toml
[tool.poetry]
name = "lerobot"
version = "0.1.0"
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch"
authors = [
"Rémi Cadène <[email protected]>",
"Simon Alibert <[email protected]>",
"Alexander Soare <[email protected]>",
"Quentin Gallouédec <[email protected]>",
"Adil Zouitine <[email protected]>",
"Thomas Wolf <[email protected]>",
]
repository = "https://github.com/huggingface/lerobot"
readme = "README.md"
license = "Apache-2.0"
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"Topic :: Software Development :: Build Tools",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3.10",
]
packages = [{include = "lerobot"}]
[tool.poetry.dependencies]
python = ">=3.10,<3.13"
termcolor = ">=2.4.0"
omegaconf = ">=2.3.0"
wandb = ">=0.16.3"
imageio = {extras = ["ffmpeg"], version = ">=2.34.0"}
gdown = ">=5.1.0"
hydra-core = ">=1.3.2"
einops = ">=0.8.0"
pymunk = ">=6.6.0"
zarr = ">=2.17.0"
numba = ">=0.59.0"
torch = ">=2.2.1"
opencv-python = ">=4.9.0"
diffusers = ">=0.27.2"
torchvision = ">=0.17.1"
h5py = ">=3.10.0"
huggingface-hub = {extras = ["hf-transfer", "cli"], version = ">=0.25.2"}
gymnasium = "==0.29.1" # TODO(rcadene, aliberts): Make gym 1.0.0 work
cmake = ">=3.29.0.1"
gym-dora = { git = "https://github.com/dora-rs/dora-lerobot.git", subdirectory = "gym_dora", optional = true }
gym-pusht = { version = ">=0.1.5", optional = true}
gym-xarm = { version = ">=0.1.1", optional = true}
gym-aloha = { version = ">=0.1.1", optional = true}
pre-commit = {version = ">=3.7.0", optional = true}
debugpy = {version = ">=1.8.1", optional = true}
pytest = {version = ">=8.1.0", optional = true}
pytest-cov = {version = ">=5.0.0", optional = true}
datasets = ">=2.19.0"
imagecodecs = { version = ">=2024.1.1", optional = true }
pyav = ">=12.0.5"
rerun-sdk = ">=0.15.1"
deepdiff = ">=7.0.1"
flask = ">=3.0.3"
pandas = {version = ">=2.2.2", optional = true}
scikit-image = {version = ">=0.23.2", optional = true}
dynamixel-sdk = {version = ">=3.7.31", optional = true}
pynput = {version = ">=1.7.7", optional = true}
feetech-servo-sdk = {version = ">=1.0.0", optional = true}
setuptools = {version = "!=71.0.1", optional = true} # TODO(rcadene, aliberts): 71.0.1 has a bug
pyrealsense2 = {version = ">=2.55.1.6486", markers = "sys_platform != 'darwin'", optional = true} # TODO(rcadene, aliberts): Fix on Mac
pyrender = {git = "https://github.com/mmatl/pyrender.git", markers = "sys_platform == 'linux'", optional = true}
hello-robot-stretch-body = {version = ">=0.7.27", markers = "sys_platform == 'linux'", optional = true}
pyserial = {version = ">=3.5", optional = true}
jsonlines = ">=4.0.0"
[tool.poetry.extras]
dora = ["gym-dora"]
pusht = ["gym-pusht"]
xarm = ["gym-xarm"]
aloha = ["gym-aloha"]
dev = ["pre-commit", "debugpy"]
test = ["pytest", "pytest-cov", "pyserial"]
umi = ["imagecodecs"]
video_benchmark = ["scikit-image", "pandas"]
dynamixel = ["dynamixel-sdk", "pynput"]
feetech = ["feetech-servo-sdk", "pynput"]
intelrealsense = ["pyrealsense2"]
stretch = ["hello-robot-stretch-body", "pyrender", "pyrealsense2", "pynput"]
[tool.ruff]
line-length = 110
target-version = "py310"
exclude = [
"tests/data",
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".mypy_cache",
".nox",
".pants.d",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "I", "N", "B", "C4", "SIM"]
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
You may try #10018. As you can see in the PR description it does not fix the regression, it only mitigates it. The performance might be enough for simpler cases. However, it is also possible that it makes no relevant difference for your use case...
After investigating the issue a little further, it seems like the performance regression can be fixed (at least for the simplified repro) if we improve extra handling in _merge_single_markers, i.e. support AtomicMultiMarker and AtomicMarkerUnion for extra markers. However, this is a bit tricky without breaking things and requires additional unit tests. I will take a look but it may take a while.
@radoering thank you for this update.
I've tried 2.0.1 but doesn't seem to fix it, poetry lock --regenerate was still running after 20mn (with the above pyproject.toml I mentioned)
With python-poetry/poetry-core#818, at least the simple repro from https://github.com/python-poetry/poetry/issues/9956#issuecomment-2573922549 is almost as fast as before.
@aliberts You can try the main branch of Poetry if you like. (It should be significantly faster than 2.0.1 but it might still be slower than 1.8.)
@aliberts You can try the main branch of Poetry if you like. (It should be significantly faster than 2.0.1 but it might still be slower than 1.8.)
Or better wait for python-poetry/poetry-core#821. This should make it about as fast as with 1.8. (See PR description.)
Hi, I must add another case that running poetry 2.0.1 also takes forever on repo https://github.com/dlt-hub/dlt But on 1.8 it takes no time.
Hope it helps for another case to test after new changes:
@aliberts You can try the main branch of Poetry if you like. (It should be significantly faster than 2.0.1 but it might still be slower than 1.8.)
Or better wait for python-poetry/poetry-core#821. This should make it about as fast as with 1.8. (See PR description.)
I checked the examples mentioned in this issue with the main branch of poetry (and poetry-core) and there still seems to be a regression in some use cases:
https://github.com/python-poetry/poetry/issues/9956#issue-2770041880:
| poetry version | lock (--regenerate) | lock (--no-update) |
|---|---|---|
| 1.8 | 215 s | 25 s |
| main | >400 s | 5 s |
https://github.com/python-poetry/poetry/issues/9956#issuecomment-2573922549:
| poetry version | lock (--regenerate) | lock (--no-update) |
|---|---|---|
| 1.8 | 0.8 s | 0.2 s |
| main | 0.8 s | 0.3 s |
https://github.com/python-poetry/poetry/issues/9956#issuecomment-2582451109:
| poetry version | lock (--regenerate) | lock (--no-update) |
|---|---|---|
| 1.8 | 201 s | 18 s |
| main | 60 s | 7.5 s |
https://github.com/python-poetry/poetry/issues/9956#issuecomment-2614554740:
| poetry version | lock (--regenerate) | lock (--no-update) |
|---|---|---|
| 1.8 | 1040 s | 107 s |
| main | >1400 s | recursion error after 200 s |
At first glance, it looks like the resolver takes different routes, but I still do not know why. (#8256 was long before Poetry 1.8)
After having investigated the recursion error mentioned in my previous comment, I got some new insights:
The recursion error
The recursion error is caused by python-poetry/poetry-core#821 and will be fixed by python-poetry/poetry-core#832.
The resolver taking another route
The resolver takes a different route because of https://github.com/python-poetry/poetry/blob/9507528043446eac95610ad55e95352d8212e050/src/poetry/puzzle/provider.py#L532-L541 introduced in #9553. Before, the following duplicates were merged:
psycopg2-binary >= 2.9.1
psycopg2-binary >= 2.9.0
With the change the duplicates become:
psycopg2-binary >= 2.9.1; extra == "postgres" or extra == "redshift" or extra == "postgis"
psycopg2-binary >= 2.9.0
and are not merged anymore causing an early split in the dependency graph. While this can lead to more accurate results, it can take quite a lot of time.
Avoiding unnecessary overrides
While searching the recursion error, I noticed that we often raise OverrideNeededError with only one override, which is quite unnecessary. This will be fixed in #10138, which finally fixes the performance regression for the last example, although the resolver still takes a more expensive route:
| poetry version | lock (--regenerate) | lock (--no-update) |
|---|---|---|
| 1.8 | 1040 s | 107 s |
| main with mentioned PRs | 441 s | 35 s |
Open points
The performance regression of the first example is still present. This might also be caused by #9553 but needs to be investigated further.
The original example looks vulnerable to the usual Amazon ecosystem nonsense.
If you have reached the point where that is happening then it is likely time just to advise that OP should tighten the allowed range of awscli / boto versions.
The original example looks vulnerable to the usual Amazon ecosystem nonsense.
It is - and #9553 disturbs the balance in this case.
With Poetry 1.8, urllib3 is chosen after boto3 because both have an AnyMarker and boto3 has more candidates.
With Poetry 2.0, urllib3 is chosen before boto3 because urllib3 has still an AnyMarker, but boto3 has an extra marker.
We could fiddle with https://github.com/python-poetry/poetry/blob/8e65cbc52906e2010c69f6bfe0506264827686ec/src/poetry/mixology/version_solver.py#L464
At first, I thought to take is_specific_marker out of the equation because
- it has been introduced in #3944,
- with Poetry 2 it makes no difference for the example mentioned in https://github.com/python-poetry/poetry/pull/3905#issuecomment-819399445,
- it reduces the time to resolve the first example to 20 s.
However, it seems to increase the time to resolve the last example significantly (> 100 s).
Another option might be
- is_specific_marker = not dependency.marker.is_any()
+ is_specific_marker = not dependency.marker.without_extras().is_any()
This should mostly restore the 1.8 heuristics. This also reduces the time to resolve the first example to 20 s. However, it still slows down the last example by about 50 s.
This all feels a bit like gambling although it makes a little sense to me to ignore extra markers when choosing the next package.
What do you think @dimbleby? Keep it as is or does any change in the heuristics make sense to you?
@axellpadilla Btw, you can reduce the time for locking if you use the same constraint in https://github.com/dlt-hub/dlt/blob/9ea3812d67ed3e94ae9cb59f86c66384a443eb0d/pyproject.toml#L64 and https://github.com/dlt-hub/dlt/blob/9ea3812d67ed3e94ae9cb59f86c66384a443eb0d/pyproject.toml#L282 (in case the difference is not important to you).
My instinct would be towards simplification. The is_specific_marker bit looks not particularly well justified: I could easily believe that fixes since then have made it redundant. So if it is a "win some, lose some" situation - I would lean towards removing that code altogether.
There are always going to be cases where (eg) a boto3 dependency is discovered relatively late in the search, after we have already chosen (eg) a recent urllib3. Making sensible efforts to handle the obvious or common examples is good, but I would not want to try too hard to tune heuristics to specific examples.
Sometimes the best answer is just going to be "if you want a faster solve, please make your constraints less relaxed"
I am closing this issue since Poetry 2.1 has just been released. All known regressions have been fixed. In most cases, locking should be even faster than with Poetry 1.8.
If you still encounter a regression, please open a new issue.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.