Конфликт версий 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