conda: ошибка «команда не найдена», но пакет существует?

#conda

#conda

Вопрос:

В настоящее время я изучаю conda, и я немного смущен --version командой. Я сделал conda list и получил список всех пакетов в моей среде. Поскольку все пакеты находятся в моей среде, --version они должны работать для всех, верно? Но --version работает только для первого пакета в списке. Скажем, это пакеты, предоставленные conda list :

 fastqc
font-ttf-dejavu-sans-mono
fontconfig
 

Только fastq --version дайте мне версию. Если бы я это сделал, скажем, fontconfig --version это привело бы к этой ошибке:

 -bash: fontconfig: command not found
 

Кто-нибудь знает, почему --version работает только для 1-го пакета в списке пакетов? Большое вам спасибо!

Ответ №1:

Поскольку все пакеты находятся в моей среде, —version должен работать для всех из них, верно?

Нет. --version работает только для самой conda, показывая версию conda. Причина, по которой это работает и для fastq, заключается в том, что у вас, вероятно, есть другая установка fastq на вашем компьютере. Вы можете узнать это с помощью команды which : which fastq . Аналогично which fastconfig не должно давать результата. Список Conda уже показывает версии (по крайней мере, для меня это так). Если вы хотите отфильтровать определенный пакет, я бы просто grep: conda list | grep fastconfig

Комментарии:

1. Обратите внимание, что conda list принимает позиционный аргумент регулярного выражения — нет необходимости grep . Например, conda list fontconfig или conda list '^(fastqc|fontconfig)$' допустимы и не отфильтровывают информацию заголовка, как при использовании grep . Кроме того, я все еще нахожу формулировку здесь немного запутанной. --version это аргумент, который реализуют многие CLI — говорить, что он » работает только для conda «, довольно странно. Причина, по которой он работает fastqc , заключается в том, что fastqc у него есть CLI, который реализует этот аргумент — я не понимаю, почему вы заключаете, что он должен быть установлен в другом месте.