Невозможно выполнить 'x86_64-conda_cos6-linux-gnu-gcc': нет такого файла или каталога (установка pysam)
Я пытаюсь установить pysam.
После исключения:
python path/to/pysam-master/setup.py build
Эта ошибка выдается:
unable to execute 'x86_64-conda_cos6-linux-gnu-gcc': No such file or directory
error: command 'x86_64-conda_cos6-linux-gnu-gcc' failed with exit status 1
Существуют похожие темы, но все они, похоже, решают проблему с правами администратора, которой у меня нет. Есть ли способ установить необходимые файлы?
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Этот вопрос возник из моего предыдущего поста. ручная установка ошибки pysam: "ImportError: нет модуля с именем version". Но так как это может потребовать другого подхода, я сделал это своим собственным вопросом.
6 ответов
Похоже, что у Anaconda появился новый выпуск (4.3.27), в котором путь к компилятору C устанавливается на несуществующий исполняемый файл (довольно смущающая ошибка; я уверен, что они исправят ее в ближайшее время). У меня была похожая проблема с установкой pip с использованием последней версии Miniconda, которую я исправил с помощью версии 4.3.21 и убедился, что я не делал ничего подобного conda update conda
,
См. https://repo.continuum.io/miniconda/ где указаны даты выпуска и версии.
Вы также можете получить ту же ошибку при установке некоторых пакетов R, если R был установлен с использованием conda (как я сделал).
Затем просто установите пакет, выполнив: conda install gxx_linux-64
чтобы эта команда была доступна.
Теперь должно быть безопасно обновить conda. Это исправлено в следующих пакетах Python для Linux-64:
- питон-3.6.2-h0b30769_14.tar.bz2
- питон-2.7.14-h931c8b0_15.tar.bz2
- питон-2.7.13-hac47a24_15.tar.bz2
- питон-3.5.4-hc053d89_14.tar.bz2
Проблема заключалась в том, как описал Джон Рил, - мы (Anaconda, ранее Continuum) собирали все наши пакеты с помощью нового пакета GCC, который мы создали с помощью crosstool-ng. В этом пакете нет gcc, в нем есть префикс gcc - отсутствующая команда, которую вы видите, x86_64-conda_cos6-linux-gnu-gcc
, Это запекается в python, и любое расширение, созданное с этим python, ищет этот компилятор. Мы устранили проблему, используя переменную _PYTHON_SYSCONFIGDATA_NAME, которая была добавлена в python 3.6. Мы перенесли это в python 2.7 и 3.5. Теперь вы будете когда-либо видеть Python только с использованием компиляторов по умолчанию (gcc), и вы должны установить для _PYTHON_SYSCONFIGDATA_NAME соответствующее имя файла, чтобы использовать новые компиляторы. Установка этой переменной - это то, что мы добавим в сценарии активации для пакета компилятора, поэтому вам никогда не придется об этом беспокоиться. Однако на то, чтобы выпустить новые пакеты компилятора, у нас может уйти день или два, поэтому размещайте сообщения о проблемах на трекере conda-build, если вы хотите использовать новые компиляторы и вам нужна помощь для начала работы.
Соответствующие изменения кода:
После обновления Golang до 1.19.1 я начал получать:
# runtime/cgo cgo: C compiler "x86_64-conda-linux-gnu-cc" not found: exec: "x86_64-conda-linux-gnu-cc": executable file not found in $PATH
Установка gcc_linux-64 с того же канала разрешила проблему:
conda install -c anaconda gcc_linux-64
Решение, которое сработало для меня, заключалось в использовании conda для установки пакетов r:
conda install -c r r-tidyverse
или r-gggplot2, r-readr
Также убедитесь, что установка не завершается ошибкой из-за прав администратора.
Это избавит вас от боли
Где-то в вашем $PATH
(например, ~/bin
), делать
ln -sf $(which gcc) x86_64-conda_cos6-linux-gnu-gcc
Не помещайте это в системный каталог или каталог bin компании conda, и не забудьте удалить ссылку, когда проблема будет решена в восходящем направлении. gcc --version
должна быть версия 6.
РЕДАКТИРОВАТЬ: Я понимаю чувство в комментариях против манипулирования системными путями, но, возможно, мы можем использовать немного критического мышления для фактического случая в руках, прежде чем читать учение. Что на самом деле мы сделали с командой выше? Ничего больше, чем размещение исполняемого файла (символическая ссылка) с именем x86_64-conda_cos6-linux-gnu-gcc
в личном ~/bin
каталог.
Если положить что-то в личную ~/bin
каталог сломал будущее conda
(после исправления пути к компилятору C, указывающего на gcc
это встраивает), то это будет ошибка с conda
, Будет ли существование этого многословно названного компилятора мешать чему-либо еще? Вряд ли тоже. Даже если что-то подхватило, это просто ваша система gcc
в конце концов...