Poetry + explicit source can't find installation candidates while pip with --index-url can
Description
Using poetry 1.8.3 and pip 24.1.1 Torch is marked as a dependency in pyproject.toml as:
...
torch = { version = "2.3.1", source = "pytorch-cpu", optional = true }
[[tool.poetry.source]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
priority = "explicit"
Running poetry install in a linux aarch64 environment throws the following error:
RuntimeError
Unable to find installation candidates for torch (2.3.1+cpu)
at /usr/local/lib/python3.10/site-packages/poetry/installation/chooser.py:74 in choose_for
70│
71│ links.append(link)
72│
73│ if not links:
→ 74│ raise RuntimeError(f"Unable to find installation candidates for {package}")
75│
76│ # Get the best link
77│ chosen = max(links, key=lambda link: self._sort_key(package, link))
78│
Cannot install torch.
But trying the installation with pip install torch==2.3.1 --index-url https://download.pytorch.org/whl/cpu works as expected.
Using pip 24.1.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
Looking in indexes: https://download.pytorch.org/whl/cpu
Collecting torch==2.3.1
Downloading https://download.pytorch.org/whl/cpu/torch-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (86.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.9/86.9 MB 99.6 MB/s eta 0:00:00
Requirement already satisfied: filelock in /usr/local/lib/python3.10/site-packages (from torch==2.3.1) (3.15.3)
Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/site-packages (from torch==2.3.1) (4.12.2)
Requirement already satisfied: sympy in /usr/local/lib/python3.10/site-packages (from torch==2.3.1) (1.12.1)
Requirement already satisfied: networkx in /usr/local/lib/python3.10/site-packages (from torch==2.3.1) (3.3)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/site-packages (from torch==2.3.1) (3.1.4)
Requirement already satisfied: fsspec in /usr/local/lib/python3.10/site-packages (from torch==2.3.1) (2024.6.0)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/site-packages (from jinja2->torch==2.3.1) (2.1.5)
Requirement already satisfied: mpmath<1.4.0,>=1.1.0 in /usr/local/lib/python3.10/site-packages (from sympy->torch==2.3.1) (1.3.0)
Installing collected packages: torch
changing mode of /usr/local/bin/convert-caffe2-to-onnx to 755
changing mode of /usr/local/bin/convert-onnx-to-caffe2 to 755
changing mode of /usr/local/bin/torchrun to 755
Successfully installed torch-2.3.1
Shouldn't the source set in pyproject.toml work the same as --index-url in pip?
Workarounds
None
Poetry Installation Method
pip
Operating System
Debian (from python:3.10-slim)
Poetry Version
1.8.3
Poetry Configuration
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
repositories.pytorch-cpu.url = "https://download.pytorch.org/whl/cpu"
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
Python Sysconfig
Platform: "linux-aarch64"
Python version: "3.10"
Current installation scheme: "posix_prefix"
Paths:
data = "/usr/local"
include = "/usr/local/include/python3.10"
platinclude = "/usr/local/include/python3.10"
platlib = "/usr/local/lib/python3.10/site-packages"
platstdlib = "/usr/local/lib/python3.10"
purelib = "/usr/local/lib/python3.10/site-packages"
scripts = "/usr/local/bin"
stdlib = "/usr/local/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 = ""
BASEMODLIBS = ""
BINDIR = "/usr/local/bin"
BINLIBDEST = "/usr/local/lib/python3.10"
BLDLIBRARY = "-L. -lpython3.10"
BLDSHARED = "gcc -shared"
BUILDEXE = ""
BUILDPYTHON = "python"
BUILD_GNU_TYPE = "aarch64-unknown-linux-gnu"
BYTESTR_DEPS = "\"
CC = "gcc"
CCSHARED = "-fPIC"
CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall"
CFLAGSFORSHARED = "-fPIC"
CFLAGS_ALIASING = ""
CFLAGS_NODIST = ""
CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
CONFIGURE_CFLAGS = ""
CONFIGURE_CFLAGS_NODIST = "-fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden"
CONFIGURE_CPPFLAGS = ""
CONFIGURE_LDFLAGS = ""
CONFIGURE_LDFLAGS_NODIST = "-fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g"
CONFIG_ARGS = "'--build=aarch64-linux-gnu' '--enable-loadable-sqlite-extensions' '--enable-optimizations' '--enable-option-checking=fatal' '--enable-shared' '--with-lto' '--with-system-expat' '--without-ensurepip' 'build_alias=aarch64-linux-gnu'"
CONFINCLUDEDIR = "/usr/local/include"
CONFINCLUDEPY = "/usr/local/include/python3.10"
COREPYTHONPATH = ""
COVERAGE_INFO = "/usr/src/python/coverage.info"
COVERAGE_REPORT = "/usr/src/python/lcov-report"
COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report""
CPPFLAGS = "-I. -I./Include"
CXX = "g++"
DESTDIRS = "/usr/local /usr/local/lib /usr/local/lib/python3.10 /usr/local/lib/python3.10/lib-dynload"
DESTLIB = "/usr/local/lib/python3.10"
DESTPATH = ""
DESTSHARED = "/usr/local/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 = ""
EXTRA_CFLAGS = ""
EXT_SUFFIX = ".cpython-310-aarch64-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 = "0"
HAVE_GCC_ASM_FOR_X87 = "0"
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 = "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 = "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 = "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_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 = "aarch64-unknown-linux-gnu"
INCLDIRSTOMAKE = "/usr/local/include /usr/local/include /usr/local/include/python3.10 /usr/local/include/python3.10"
INCLUDEDIR = "/usr/local/include"
INCLUDEPY = "/usr/local/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 = "g++ -shared"
LDFLAGS = ""
LDFLAGS_NODIST = ""
LDLIBRARY = "libpython3.10.so"
LDLIBRARYDIR = ""
LDSHARED = "gcc -shared"
LDVERSION = "3.10"
LIBC = ""
LIBDEST = "/usr/local/lib/python3.10"
LIBDIR = "/usr/local/lib"
LIBFFI_INCLUDEDIR = ""
LIBM = "-lm"
LIBOBJDIR = "Python/"
LIBOBJS = ""
LIBPC = "/usr/local/lib/pkgconfig"
LIBPL = "/usr/local/lib/python3.10/config-3.10-aarch64-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 = "gcc"
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 = "/usr/local/lib/python3.10"
MACOSX_DEPLOYMENT_TARGET = ""
MAINCC = "gcc"
MAJOR_IN_MKDEV = "0"
MAJOR_IN_SYSMACROS = "1"
MAKESETUP = "./Modules/makesetup"
MANDIR = "/usr/local/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 = "aarch64-linux-gnu"
MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"aarch64-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 -O3 -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 = "-fprofile-use -fprofile-correction"
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 -O3 -Wall -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -fPIC -DPy_BUILD_CORE_BUILTIN"
PY_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall"
PY_CFLAGS_NODIST = "-fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -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 -O3 -Wall -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -fPIC -DPy_BUILD_CORE"
PY_CORE_LDFLAGS = "-fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g"
PY_CPPFLAGS = "-I. -I./Include"
PY_ENABLE_SHARED = "1"
PY_FORMAT_SIZE_T = ""z""
PY_LDFLAGS = ""
PY_LDFLAGS_NODIST = "-fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g"
PY_SSL_DEFAULT_CIPHERS = "1"
PY_SSL_DEFAULT_CIPHER_STRING = "0"
PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -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=/usr/src/python"
SCRIPTDIR = "/usr/local/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-aarch64-linux-gnu.so"
SOABI = "cpython-310-aarch64-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=/usr/src/python ./python"
TESTPYTHONOPTS = ""
TESTRUNNER = "LD_LIBRARY_PATH=/usr/src/python ./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 = "0"
VERSION = "3.10"
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 = "/usr/src/python"
abs_srcdir = "/usr/src/python"
base = "/usr/local"
datarootdir = "/usr/local/share"
exec_prefix = "/usr/local"
installed_base = "/usr/local"
installed_platbase = "/usr/local"
platbase = "/usr/local"
platlibdir = "lib"
prefix = "/usr/local"
projectbase = "/usr/local/bin"
py_version = "3.10.14"
py_version_nodot = "310"
py_version_nodot_plat = ""
py_version_short = "3.10"
srcdir = "/usr/local/lib/python3.10/config-3.10-aarch64-linux-gnu"
userbase = "/root/.local"
Example pyproject.toml
[tool.poetry.dependencies]
torch = { version = "2.3.1", source = "pytorch-cpu", optional = true }
[[tool.poetry.source]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
priority = "explicit"
Poetry Runtime Logs
- Installing torch (2.3.1+cpu): Pending...
Checking if keyring is available
[keyring:keyring.backend] Loading KWallet
[keyring:keyring.backend] Loading SecretService
[keyring:keyring.backend] Loading Windows
[keyring:keyring.backend] Loading chainer
[keyring:keyring.backend] Loading libsecret
[keyring:keyring.backend] Loading macOS
Backend 'fail Keyring' is not suitable
No valid keyring backend was found
Creating new session for download.pytorch.org
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (1): download.pytorch.org:443
[urllib3:urllib3.connectionpool] https://download.pytorch.org:443 "GET /whl/cpu/torch/ HTTP/11" 200 138336
Skipping wheel torch-2.3.1+cpu-cp310-cp310-linux_x86_64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp310-cp310-win_amd64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp311-cp311-linux_x86_64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp311-cp311-win_amd64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp312-cp312-linux_x86_64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp312-cp312-win_amd64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp38-cp38-linux_x86_64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp38-cp38-win_amd64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp39-cp39-linux_x86_64.whl as this is not supported by the current environment
Skipping wheel torch-2.3.1+cpu-cp39-cp39-win_amd64.whl as this is not supported by the current environment
- Installing torch (2.3.1+cpu): Failed
Stack trace:
5 /usr/local/lib/python3.10/site-packages/poetry/installation/executor.py:285 in _execute_operation
283│
284│ try:
→ 285│ result = self._do_execute_operation(operation)
286│ except EnvCommandError as e:
287│ if e.e.returncode == -2:
4 /usr/local/lib/python3.10/site-packages/poetry/installation/executor.py:395 in _do_execute_operation
393│ return 0
394│
→ 395│ result: int = getattr(self, f"_execute_{method}")(operation)
396│
397│ if result != 0:
3 /usr/local/lib/python3.10/site-packages/poetry/installation/executor.py:520 in _execute_install
518│
519│ def _execute_install(self, operation: Install | Update) -> int:
→ 520│ status_code = self._install(operation)
521│
522│ self._save_url_reference(operation)
2 /usr/local/lib/python3.10/site-packages/poetry/installation/executor.py:558 in _install
556│ archive = self._download_link(operation, Link(package.source_url))
557│ else:
→ 558│ archive = self._download(operation)
559│
560│ operation_message = self.get_operation_message(operation)
1 /usr/local/lib/python3.10/site-packages/poetry/installation/executor.py:736 in _download
734│
735│ def _download(self, operation: Install | Update) -> Path:
→ 736│ link = self._chooser.choose_for(operation.package)
737│
738│ if link.yanked:
RuntimeError
Unable to find installation candidates for torch (2.3.1+cpu)
at /usr/local/lib/python3.10/site-packages/poetry/installation/chooser.py:74 in choose_for
70│
71│ links.append(link)
72│
73│ if not links:
→ 74│ raise RuntimeError(f"Unable to find installation candidates for {package}")
75│
76│ # Get the best link
77│ chosen = max(links, key=lambda link: self._sort_key(package, link))
78│
Cannot install torch.
working as designed. poetry first locks to a version - in this case 2.3.1+cpu. then at install time it correctly fails to find that version for your platform.
you may be interested in #6409, though really it would be better if everyone stopped trying to find workarounds in poetry and instead asked the torch folk to publish consistently versioned packages for all platforms.
please close
I was facing this issue and I fixed this by downgrading my python version in env.
I was using Python 3.13 and was getting the same error.
First, update your poetry env to use the supported version for the package. In my case, it was 3.12. You'll also need to update the version in pyproject.toml file.
Then, run the command and it should work and install 2.3.1+cpu (or 2.3.1+gpu if you want to use cuda)
Closing this as based on the information provided, Poetry is behaving as expected of it.
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.