Pip не устанавливает последнюю версию пакета

Я пытаюсь установить последнюю версию (0.0.7) пакета https://pypi.org/project/revolutionhtl/ с помощью команды

pip install revolutionhtl

После запуска этой команды установленной версией будет 0.0.4. Ниже вы можете увидеть вывод команды, обратите внимание, что третья строка говорит Using cached revolutionhtl-0.0.7-py3-none-any.whl (29 kB), поэтому кажется, что pip определяет версию 0.0.7, тем не менее, она не установлена.

Defaulting to user installation because normal site-packages is not writeable
Collecting revolutionhtl
  Using cached revolutionhtl-0.0.7-py3-none-any.whl (29 kB)
Collecting networkx>=2.8
  Using cached networkx-3.0-py3-none-any.whl (2.0 MB)
Collecting numpy>=1.22.3
  Using cached numpy-1.24.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
Requirement already satisfied: tqdm>=4.63.0 in /usr/lib/python3/dist-packages (from revolutionhtl) (4.64.0)
Collecting pandas>=1.4.2
  Using cached pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB)
Collecting revolutionhtl
  Using cached revolutionhtl-0.0.6-py3-none-any.whl (29 kB)
  Using cached revolutionhtl-0.0.5-py3-none-any.whl (29 kB)
  Using cached revolutionhtl-0.0.4-py3-none-any.whl (29 kB)
Installing collected packages: revolutionhtl
Successfully installed revolutionhtl-0.0.4

Также я попробовал с командой pip install revolutionhtl==0.0.7, получив на выходе:

Defaulting to user installation because normal site-packages is not writeable
Collecting revolutionhtl==0.0.7
  Using cached revolutionhtl-0.0.7-py3-none-any.whl (29 kB)
ERROR: Could not find a version that satisfies the requirement itertools (from revolutionhtl) (from versions: none)
ERROR: No matching distribution found for itertools

Что мне делать, чтобы установить версию 0.0.7?

Моя версия Python: 3.10.9.

$ pip --version
pip 22.3 from /usr/lib/python3/dist-packages/pip (python 3.10)

Поскольку для Revolutionhtl требуется python >= 3.7, проблема не должна быть в моем python.

🤔 А знаете ли вы, что...
Python активно используется в научных и инженерных вычислениях.


1
91
2

Ответы:

Похоже, что пакет устанавливается в каталог пользователя, в котором у вас нет прав на запись. Вот почему pip по умолчанию устанавливается пользователем. Попробуйте использовать команду pip install --user revolutionhtl==0.0.7, чтобы установить его в каталог пользователя, где у вас есть права на запись. Кроме того, похоже, что отсутствует пакет itertools, который требуется пакету Revolutionhtl. Попробуйте установить itertools, запустив pip install itertools перед установкой Revolutionhtl. Если вы по-прежнему сталкиваетесь с проблемами, попробуйте удалить любую существующую версию пакета перед установкой последней версии, запустив pip uninstall revolutionhtl.


Решено

Я связался с создателем пакета. Мы увидели, что проблема заключалась в списке зависимостей пакета. В файле pyproject.toml было указано следующее:

dependencies = [
    "networkx >= 2.8",
    "pandas >= 1.4.2",
    "argparse >= 1.1",
    "os",
    "numpy >= 1.22.3",
    "tqdm >= 4.63.0",
    "itertools",
    "collections",
    ]

После удаления argparse, os, itertools и collections проблема исчезла. Я предполагаю, что это работает, потому что эти пакеты являются частью стандартной библиотеки Python, а затем они не отображаются в pypi.

Вы можете увидеть исправление в этой ссылке, теперь я могу скачать последнюю версию (0.0.8) с помощью pip install revolutionhtl.