Конфликт версий protobuf между tensorflow 2.3.1 и cirq

В настоящее время начал изучать TFQ и пытался сделать этот учебник авторов тензорного потока, но если я запустил первую строку (! Pip install -q tensorflow==2.3.1 --user), я получаю эту ошибку:

ОШИБКА: преобразователь зависимостей pip в настоящее время не принимает во внимание все установленные пакеты. Такое поведение является источником следующих конфликтов зависимостей. cirq 0.8.0 требует protobuf==3.8.0, но у вас есть protobuf 3.15.7, который несовместим.

И когда я запускаю вторую строку (! Pip install -q tensorflow-Quant --user), я получаю следующее:

ОШИБКА: преобразователь зависимостей pip в настоящее время не принимает во внимание все установленные пакеты. Такое поведение является источником следующих конфликтов зависимостей. tensorflow 2.3.1 требует protobuf>=3.9.2, но у вас есть protobuf 3.8.0, который несовместим.

Cirq 0.8.0 требует protobuf 3.8.0; tensorflow 2.3.1 хочет protobuf>=3.9.2, и между ними нет ничего, и когда я делаю "замораживание пипа", я вижу только protobuf==3.8.0, поэтому мой пип-замораживание не видит версию protobuf 3.15.7 что упоминается в ошибке (когда я делаю «pip show protobuf», я получаю тот же результат, что и версия 3.8.0).

Что мне делать, чтобы предотвратить этот конфликт?

Примечание: версия Python = 3.7.9 (невозможно установить tf и / или tfq ни с 3.8, ни с 3.9); ОС = Windows 10

1 ответ

Установка двух разных пакетов в одной среде отменяет большинство других. Так работает pip. Рекомендуется использовать виртуальную среду для каждого пакета.

      python -m tf_nightly --system-site-packages .\venv
.\venv\Scripts\activate
pip install --upgrade pip
pip install tf-nightly
Другие вопросы по тегам