Почему PyCharm запрашивает старую версию Pandas и как ее остановить?

Я пытаюсь изучить Pandas и делаю простой проект в PyCharm, но PyCharm сообщает, что произошла ошибка, поскольку я не использую определенные устаревшие версии Pandas, NumPy и Faker. Я не знаю, что такое Факер. Вы можете увидеть сообщение об ошибке и мой код ниже, хотя мой код не имеет большого значения для моего вопроса. Код по-прежнему работает как положено, но я хочу понять, не создаю ли я проблемы на будущее.

Я попробовал это поискать в Google, но не знаю, по каким ключевым словам мне следует искать.

Похоже, у вас есть файл requirements.txt со старыми версиями. См. документацию pycharm об этом файле.

John Gordon 27.07.2024 16:23

@JohnGordon Вы были правы, существовал файл требований.txt, в котором указаны эти версии. Кажется, я случайно скопировал и вставил его вместе с другими файлами. Я удалил его сейчас, и предупреждение исчезло после того, как я закрыл и снова открыл проект. Спасибо!

Zoe Allen 27.07.2024 16:38

Пожалуйста, убедитесь, что код размещен в текстовом формате, а не в виде скриншота.

toyota Supra 27.07.2024 17:42
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
57
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я не думаю, что это требование. Возможно, у вас более старая версия, о которой PyCharm пытается вас предупредить.

Судя по содержимому .venv\Lib\site-packages, я использую NumPy 2.0.0 и Pandas 2.2.2, и пакет под названием Faker не установлен.

Zoe Allen 27.07.2024 16:06
Ответ принят как подходящий

Судя по тому, с чем я сталкивался в прошлом, это обычно означает, что есть либо requirements.txt, либо pyproject.toml, либо что-то подобное. файл в каталоге вашего проекта. Эти файлы определяют, для каких версий необходимых пакетов был создан проект, чтобы пользователь знал, что если у него другая версия, разработчик не может гарантировать, что код будет работать.

По крайней мере, для часто используемых стилей, независимо от стиля файла требований проекта, в него будут включены строки, подобные тем, которые вы видите в этом предупреждающем баннере от PyCharm. Это будет выглядеть как

numpy == 1.18.4
pandas == 1.0.4
... other package requirements ...

Причина, по которой отображается предупреждение, заключается в том, что эти требования указаны как строгие равенства, а это означает, что разработчик указывает, что эти версии этих пакетов являются ЕДИНСТВЕННОЙ версией, с которой он гарантирует, что код будет работать.

Но это не единственный тип требований, который может быть указан в списке — есть также >=, означающее, что это должна быть как минимум указанная версия, <= максимум и т. д. Однако из того, что я видел, синтаксис файла требований может немного отличаться в зависимости от стиля, хотя я не знаю этого наверняка. Я бы рекомендовал поискать синтаксис любого конкретного файла требований, который у вас есть.

Вы импортируете индивидуальный пакет? Сейчас у меня нет времени проверить это, чтобы убедиться, но я считаю, что возможно, что импортированный пакет, который не был установлен через pip или менеджер среды, такой как conda, также может вызывать подобные предупреждения (например, в в случае загрузки исходного кода с GitHub и включения его в свой проект)

(Кстати, похоже, что можно использовать несколько различных файловых соглашений, хотя я не знаю, какие файлы PyCharm автоматически обнаружит менее распространенные. Судя по тому, что мне удалось найти в документации Pycharm, это кажется, что вы можете указать PyCharm на любой имеющийся у вас файл требований, если он не сможет его автоматически обнаружить.)

Это оказался файл требований.txt, который я случайно скопировал вместе с другими файлами.

Zoe Allen 27.07.2024 17:09

Полезно помнить, что всегда, когда вы не знаете, какая версия пакета, например pandas или numpy, действительно используется в вашем скрипте, вы всегда можете попытаться получить атрибут __version__ данного пакета:

import numpy as np
import pandas as pd

print(np.__version__)
print(pd.__version__)

но у fakerна самом деле есть атрибут VERSION:

import faker

print(faker.VERSION)

Другие вопросы по теме

Почему предупреждение: «FutureWarning: установка элемента несовместимого типа d устарела и вызовет ошибку в будущей версии pandas»?
В кадре данных замените значения из одного столбца с несколькими условиями, а не в одной строке, в другой столбец
Каков наиболее эффективный способ многопроцессорной обработки очень большого кадра данных?
Сортировать фрейм данных Pandas по промежуточной сумме и подсчитывать
Как я могу отфильтровать df «A», используя в качестве условия сравнение с df «B»?
Преобразовать время в секунды [удалив миллисекунды]
Группировка фреймов данных Pandas с применением функции с переменным количеством аргументов
Как найти количество строк в группе, поскольку для кадра данных pandas возникло ненулевое значение?
Пытаюсь выяснить логику этой страницы: хранится около ++ 100 результатов и анализируется с помощью Python и BS4
Как добавить легенду в df.plot/legend, не отображающую df.plot()