Какой пакет Python владеет двоичным файлом?

У меня проблемы с ~/.local/share/miniconda3/envs/nndl/bin/tput - он выдает результат, отличный от моей версии системы, нарушая некоторые цвета ANSI.

Я пытаюсь отследить пакет, который предоставляет эту оскорбительную версию.

Я пробовал (источник):

pip list | tail -n +3 | cut -d" " -f1 | xargs pip show -f | grep tput

Но бинарник не показывается.

Как узнать, какой пакет Python включает двоичный файл?


person Tom Hale    schedule 26.04.2019    source источник
comment
К сожалению, я не знаю общего решения проблемы. Но в вашем особом случае это должен быть пакет ncurses: packages. ubuntu.com/   -  person cel    schedule 26.04.2019
comment
Спасибо @cel, но я использую пакеты Arch Linux и ищу пакет python с двоичным файлом, который miniconda помещает ранее в мой PATH.   -  person Tom Hale    schedule 26.04.2019
comment
Я очень уверен, что это будет предоставлено пакетом conda ncurses. Вы можете проверить conda list |grep ncurses и посмотреть, установлен ли он.   -  person cel    schedule 26.04.2019
comment
@cel Как я могу узнать, прав ли ты? Пип, кажется, не говорит мне.   -  person Tom Hale    schedule 26.04.2019
comment
У вас есть ncurses в окружении? Если да, то это бритва Оккама.   -  person tripleee    schedule 27.04.2019
comment
@tripleee pip list | grep -q ncurses имеет значение false (с активированной средой с нарушенными цветами).   -  person Tom Hale    schedule 27.04.2019
comment
Если вы исследуете файл tput, это двоичный файл или код Python? В последнем случае import должен показать, из какого пакета он.   -  person tripleee    schedule 27.04.2019
comment
@tripleee file говорит: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, not stripped   -  person Tom Hale    schedule 27.04.2019
comment
Вы можете запустить strings на нем?   -  person tripleee    schedule 27.04.2019
comment
@tripleee Кажется, это обычный двоичный файл RedHat: pastebin.com/TxtZyGz7   -  person Tom Hale    schedule 27.04.2019


Ответы (3)


Одно уродливое решение:

  1. Переименуйте файл
  2. Переустанавливайте все установленные пакеты один за другим, пока файл не появится снова.
person Tom Hale    schedule 29.04.2019

Чтобы найти, к какому пакету принадлежит какой-либо файл в смешанной среде conda/pip

  1. найдите, какой пакет, установленный pip, содержит имя файла:
pip list | tail -n +3 | cut -d" " -f1 | xargs pip show -f | grep filename_to_find
  1. но если он был установлен через conda, вам нужно сделать это вместо этого:
grep filename_to_find  ~/anaconda3/envs/ENVNAME/conda-meta/*
  • замените filename_to_find на нужное вам имя файла
  • замените ~/anaconda3 на путь, по которому находится ваша конда
  • замените ENVNAME на имя conda env, которое вы хотите

(первый рецепт из ОП)

person stason    schedule 29.07.2021

which python

Это должно указать вам правильный путь

person Albe    schedule 27.04.2019