#python #python-3.x #python-2.7 #virtualenv #bazel
Вопрос:
Я пытаюсь создать цель bazel внутри virtualenv, и я сталкиваюсь со следующей ошибкой:
Use --sandbox_debug to see verbose messages from the sandbox
Error occurred while attempting to use the default Python toolchain (@rules_python//python:autodetecting_toolchain).
According to '/home/vagrant/venv/bin/python -V', version is 'Python 3.7.5', but we need version 2. PATH is:
/home/vagrant/venv/bin:/home/vagrant/.local/bin:/home/vagrant/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/vagrant/bin
Please ensure an interpreter with version 2 is available on this platform as 'python2' or 'python', or else register an appropriate Python toolchain as per the documentation for py_runtime_pair (https://github.com/bazelbuild/rules_python/blob/master/docs/python.md#py_runtime_pair).
Note that prior to Bazel 0.27, there was no check to ensure that the interpreter's version matched the version declared by the target (#4815). If your build worked prior to Bazel 0.27, and you're sure your targets do not require Python 2, you can opt out of this version check by using the non-strict autodetecting toolchain instead of the standard autodetecting toolchain. This can be done by passing the flag `--extra_toolchains=@rules_python//python:autodetecting_toolchain_nonstrict` on the command line or adding it to your bazelrc.
Я попробовал --extra_toolchains=@rules_python//python:autodetecting_toolchain_nonstrict
флаг, но сборка все равно не удалась, поэтому я подумал, что попробую построить с участием python2.
Текущее состояние моей системы:
- Внутри virtualenv:
python
иpython3
, похоже, решил перейти на версию 3.7.5python2
ни к чему не приводитpython2.7
разрешается в python 2.7.17
- За пределами virtualenv:
python
принимает решение 2.7.17python3
принимается решение до 3.7.5python2
ни к чему не приводитpython2.7
разрешается в python 2.7.17
Я хочу, чтобы либо python
или python2
в моем virtualenv также разрешилось до 2.7.17. (Я думаю, может python2
быть, так безопаснее? Я беспокоюсь, что изменение python
может иметь много других побочных эффектов). Для изменения python
я несколько раз пробовал команду «обновление sudo-альтернативы», но, похоже, она уже указывает на то, что нужно. Похоже, virtualenv просто не улавливает этого. Любая помощь была бы очень признательна.
Спасибо!
Комментарии:
1. Как вы создали виртуальную среду?
2. Вы определяете, какую версию Python вы хотите, когда создаете свой virtualenv. Как именно это сделать с Python 2.7, зависит от того, установлен ли у вас
virtualenv
пакет для Python 2.