#scons
#scons
Вопрос:
Я пытаюсь скомпилировать проект GitHub: https://github.com/commaai/openpilot , Я получаю сообщение об ошибке при создании среды SCons (вызов Environment()), он указывает на эту строку :
Environement(
# Other options ...
tools=["default", "cython", "compilation_db"
)
Результат scons тогда :
scons: Reading SConscript files ...
EnvironmentError: No module named compilation_db:
File "/home/skoumad/openpilot/master/SConstruct", line 213:
"compilation_db"
File "/usr/lib/scons/SCons/Environment.py", line 982:
apply_tools(self, tools, toolpath)
File "/usr/lib/scons/SCons/Environment.py", line 107:
env.Tool(tool)
File "/usr/lib/scons/SCons/Environment.py", line 1788:
tool = SCons.Tool.Tool(tool, toolpath, **kw)
File "/usr/lib/scons/SCons/Tool/__init__.py", line 118:
module = self._tool_module()
File "/usr/lib/scons/SCons/Tool/__init__.py", line 215:
raise SCons.Errors.EnvironmentError(error_string)
Я попытался установить compilation_db, используя: https://pypi.org/project/scons-compiledb/0.4.7 /
но все та же ошибка:/ .
Есть идеи о том, как установить этот отсутствующий модуль??
С уважением.
Ответ №1:
Скорее всего, у вас версия SCons старше 4.0.0
compilation_db
Инструмент был добавлен в версии 4.0.0
Если у вашего дистрибутива (linux, python, macports и т. Д.) Нет версии 4.0.0 или новее, я бы посоветовал настроить python virtualenv (нет, это не виртуальная машина, это просто инструмент для создания чистой среды python для установки пакетов)
Вот как это сделать:
# assuming posix system, for win32, of course change the path to windows correct syntax
# also the python below should be 3.5 or newer, generally it's best to use the newest installed
python -m venv ~/sconsvenv
. ~/sconsvenv/bin/activate
pip install scons
scons --version
# should yield
SCons by Steven Knight et al.:
SCons: v4.1.0.post1.dc58c175da659d6c0bb3e049ba56fb42e77546cd, 2021-01-20 04:32:28, by bdbaddog on ProDog2020
SCons path: ['/Users/bdbaddog/sconsvenv/lib/python3.8/site-packages/SCons']
Copyright (c) 2001 - 2021 The SCons Foundation
Комментарии:
1. Привет, спасибо, и да, вы правы, у меня старая версия (3.0.1), я использовал apt get install, и он сообщает, что это последняя версия (scons уже самая новая версия (3.0.1-2). ), Я попытаюсь выполнить apt get update.
2. Скорее всего, вы не получите более новую версию из своего дистрибутива.. Я добавлю информацию выше.
3. Большое спасибо за оцененные усилия ^^. Используя virtualenv, я получил: Успешно установлен scons-4.1.0.post1, но при попытке scons -version он по-прежнему остается старым: $ scons -version SCons от Steven Knight и др.: script: v3.0.1.74b
4. Переустановка его с помощью apt-get autoremove, а затем apt get install scons каким-то образом устранила проблему, я вижу, что теперь двоичный файл scons вызывается из myenv ^^. Большое спасибо за отличную поддержку =)
5. Вам необходимо активировать virtualenv, чтобы получить недавно установленные scons в вашем path. В противном случае вы получите SCONS из вашей системной установки (и ПУТИ). Или вы можете явно запускать scons из ~/sconsvenv/bin/scons