`poetry install` does not respect `virtualenvs.options` in "ephemeral environments"
Description
I'm deploying inside a Docker container that doesn't allow symlinks to global Python executable. I've been able to navigate around this issue using an always-copy flag for virtualenv.
However, when I'm running poetry install, judging by the stack trace, it creates an "ephemeral environment" (for build-dependencies? I am not sure), in which flags are ignored, and it all fails with an OSError.
Workarounds
I've been able to export VIRTUALENV_ALWAYS_COPY=true to get the desired behaviour.
Poetry Installation Method
pipx
Operating System
Ubuntu
Poetry Version
Poetry (version 1.8.1)
Poetry Configuration
cache-dir = "/home/k/kirtloic/.cache/pypoetry"
experimental.system-git-client = false
installer.max-workers = null
installer.modern-installation = true
installer.no-binary = null
installer.parallel = true
keyring.enabled = true
solver.lazy-wheel = true
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.options.always-copy = true
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs" # /home/k/kirtloic/.cache/pypoetry/virtualenvs
virtualenvs.prefer-active-python = false
virtualenvs.prompt = "{project_name}-py{python_version}"
warnings.export = true
Python Sysconfig
Platform: "linux-x86_64"
Python version: "3.10"
Current installation scheme: "posix_local"
Paths:
data = "/usr/local"
include = "/usr/include/python3.10"
platinclude = "/usr/include/python3.10"
platlib = "/usr/local/lib/python3.10/dist-packages"
platstdlib = "/usr/lib/python3.10"
purelib = "/usr/local/lib/python3.10/dist-packages"
scripts = "/usr/local/bin"
stdlib = "/usr/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 = "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-UfU9Sd/python3.10-3.10.12/build-shared/coverage.info"
COVERAGE_REPORT = "/build/python3.10-UfU9Sd/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-UfU9Sd/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"
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 = "../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-UfU9Sd/python3.10-3.10.12/build-shared ./python"
TESTPYTHONOPTS = ""
TESTRUNNER = "LD_LIBRARY_PATH=/build/python3.10-UfU9Sd/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"
abiflags = ""
abs_builddir = "/build/python3.10-UfU9Sd/python3.10-3.10.12/build-shared"
abs_srcdir = "/build/python3.10-UfU9Sd/python3.10-3.10.12/build-shared/.."
base = "/usr"
datarootdir = "/usr/share"
exec_prefix = "/usr"
installed_base = "/usr"
installed_platbase = "/usr"
multiarchsubdir = "/x86_64-linux-gnu"
platbase = "/usr"
platlibdir = "lib"
prefix = "/usr"
projectbase = "/usr/bin"
py_version = "3.10.12"
py_version_nodot = "310"
py_version_nodot_plat = ""
py_version_short = "3.10"
srcdir = "/usr/lib/python3.10/config-3.10-x86_64-linux-gnu"
userbase = "/home/k/kirtloic/.local"
Example pyproject.toml
[tool.poetry.dependencies]
scour = "^0.38.2"
Poetry Runtime Logs
- Installing scour (0.38.2): Pending...
- Installing scour (0.38.2): Preparing...
- Installing scour (0.38.2): Failed
Stack trace:
19 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/executor.py:281 in _execute_operation
279│
280│ try:
→ 281│ result = self._do_execute_operation(operation)
282│ except EnvCommandError as e:
283│ if e.e.returncode == -2:
18 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/executor.py:391 in _do_execute_operation
389│ return 0
390│
→ 391│ result: int = getattr(self, f"_execute_{method}")(operation)
392│
393│ if result != 0:
17 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/executor.py:516 in _execute_install
514│
515│ def _execute_install(self, operation: Install | Update) -> int:
→ 516│ status_code = self._install(operation)
517│
518│ self._save_url_reference(operation)
16 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/executor.py:554 in _install
552│ archive = self._download_link(operation, Link(package.source_url))
553│ else:
→ 554│ archive = self._download(operation)
555│
556│ operation_message = self.get_operation_message(operation)
15 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/executor.py:746 in _download
744│ self._yanked_warnings.append(message)
745│
→ 746│ return self._download_link(operation, link)
747│
748│ def _download_link(self, operation: Install | Update, link: Link) -> Path:
14 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/executor.py:781 in _download_link
779│ self._write(operation, message)
780│
→ 781│ archive = self._chef.prepare(archive, output_dir=original_archive.parent)
782│
783│ # Use the original archive to provide the correct hash.
13 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/chef.py:123 in prepare
121│ return self._prepare(archive, destination=destination, editable=editable)
122│
→ 123│ return self._prepare_sdist(archive, destination=output_dir)
124│
125│ def _prepare(
12 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/chef.py:194 in _prepare_sdist
192│ destination.mkdir(parents=True, exist_ok=True)
193│
→ 194│ return self._prepare(
195│ sdist_dir,
196│ destination,
11 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/installation/chef.py:130 in _prepare
128│ from subprocess import CalledProcessError
129│
→ 130│ with ephemeral_environment(self._env.python) as venv:
131│ env = IsolatedEnv(venv, self._pool)
132│ builder = ProjectBuilder.from_isolated_env(
10 /usr/lib/python3.10/contextlib.py:135 in __enter__
133│ del self.args, self.kwds, self.func
134│ try:
→ 135│ return next(self.gen)
136│ except StopIteration:
137│ raise RuntimeError("generator didn't yield") from None
9 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/utils/env/__init__.py:49 in ephemeral_environment
47│ # TODO: cache PEP 517 build environment corresponding to each project venv
48│ venv_dir = Path(tmp_dir) / ".venv"
→ 49│ EnvManager.build_venv(
50│ path=venv_dir,
51│ executable=executable,
8 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/poetry/utils/env/env_manager.py:679 in build_venv
677│ args.append(str(path))
678│
→ 679│ cli_result = virtualenv.cli_run(args, setup_logging=False)
680│
681│ # Exclude the venv folder from from macOS Time Machine backups
7 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/virtualenv/run/__init__.py:33 in cli_run
31│ of_session = session_via_cli(args, options, setup_logging, env)
32│ with of_session:
→ 33│ of_session.run()
34│ return of_session
35│
6 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/virtualenv/run/session.py:44 in run
42│
43│ def run(self):
→ 44│ self._create()
45│ self._seed()
46│ self._activate()
5 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/virtualenv/run/session.py:51 in _create
49│ def _create(self):
50│ logging.info("create virtual environment via %s", self.creator)
→ 51│ self.creator.run()
52│ logging.debug(_DEBUG_MARKER)
53│ logging.debug("%s", _Debug(self.creator))
4 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/virtualenv/create/creator.py:158 in run
156│ logging.debug("delete %s", self.dest)
157│ safe_delete(self.dest)
→ 158│ self.create()
159│ self.set_pyenv_cfg()
160│ if not self.no_vcs_ignore:
3 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/virtualenv/create/via_global_ref/builtin/via_global_self_do.py:95 in create
93│ or (src.when == RefWhen.COPY and self.symlinks is False)
94│ ):
→ 95│ src.run(self, self.symlinks)
96│ finally:
97│ if true_system_site != self.enable_system_site_package:
2 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/virtualenv/create/via_global_ref/builtin/ref.py:153 in run
151│ dest = bin_dir / self.base
152│ method = self.method(symlinks)
→ 153│ method(self.src, dest)
154│ if not symlinks:
155│ make_exe(dest)
1 ~/.local/share/pipx/venvs/poetry/lib/python3.10/site-packages/virtualenv/util/path/_sync.py:33 in symlink
31│ ensure_safe_to_do(src, dest)
32│ logging.debug("symlink %s", _Debug(src, dest))
→ 33│ dest.symlink_to(src, target_is_directory=src.is_dir())
34│
35│
PermissionError
[Errno 13] Permission denied: '/usr/local/bin/python3.11' -> '/tmp/tmpfs28f7jg/.venv/bin/python'
at /usr/lib/python3.10/pathlib.py:1255 in symlink_to
1251│ """
1252│ Make this path a symlink pointing to the target path.
1253│ Note the order of arguments (link, target) is the reverse of os.symlink.
1254│ """
→ 1255│ self._accessor.symlink(target, self, target_is_directory)
1256│
1257│ def hardlink_to(self, target):
1258│ """
1259│ Make this path a hard link pointing to the same file as *target*.
Cannot install scour.
those options are only supposed to apply to user virtual environments
Those flags only apply to end-user virtual envs, to be sure. If PEP 517 isolated builds are failing, I would say that your Python is broken; other spec-compliant tools like pip will be equally unable to build Python packages from an sdist...
We can certainly work around it, but I'm not sure that we should/it makes sense to do so.
@neersighted I don't think my Python is broken - this is inside a Docker container, and symlink between /tmp (or /home) and /usr is a cross-FS symlink, which is the reason it fails. (At least that's my understanding - the container is set up by my hosting provider, I'm not privy to its inner workings).
Understood, it seems like setting VIRTUALENV_ALWAYS_COPY=true is the workaround I'm looking for here. Would probably be nice to clarify this in Poetry docs - that Poetry might create venvs that do not honor these options.
Can confirm this is happening, my docker instances are starting to fail using python:3.11-slim
RUN poetry config virtualenvs.create false
RUN poetry install --no-dev
is now creating a .venv and causing issues with PATH
root@4e21b8cd6876:/app# poetry --version
Poetry (version 1.8.2)
root@4e21b8cd6876:/app# poetry config --list
cache-dir = "/root/.cache/pypoetry"
experimental.system-git-client = false
installer.max-workers = null
installer.modern-installation = true
installer.no-binary = null
installer.parallel = true
keyring.enabled = true
solver.lazy-wheel = true
virtualenvs.create = false
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs" # /root/.cache/pypoetry/virtualenvs
virtualenvs.prefer-active-python = false
virtualenvs.prompt = "{project_name}-py{python_version}"
warnings.export = true
root@4e21b8cd6876:/app# python --version
Python 3.11.7
@pjaol What you are referring to is entirely separate. In addition, you should use virtual environments, even in a container, as the kilobyte cost of a symlink farm greatly improves the reliability of your container image against future refactors/enhancements you (or your teammates) might introduce.
If you'd like to discuss why this is preferred, feel free to join the Discord server. However, please refrain from replying in this issue, as whatever you're running into is:
- likely not a bug
- off-topic for this issue
Also, if you understand why you should create an environment and you still think there is a bug, I'd still suggest joining the Discord to confirm there is unexpected behavior, as environment management is very stable and has not moved significantly since 1.2.
@neersighted if this is a different topic could you point me to the correct one? Appreciate the discord invite but bugs should be discussed on issue tickets, discord is a walled system
It's likely not a bug, as I said. If you think it is a bug, and you have troubleshot it (and again, you should be using a venv anyway), open a new ticket.
Closing the issue, as the discussion indicated that this is WAI.
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.