【问题标题】:Which python package owns a binary?哪个 python 包拥有二进制文件?
【发布时间】:2019-09-15 18:55:05
【问题描述】:

我在使用 ~/.local/share/miniconda3/envs/nndl/bin/tput 时遇到问题 - 它产生的输出与我的系统版本不同,破坏了一些 ANSI 着色。

我正在尝试追踪提供此攻击性版本的软件包。

我试过了(source):

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

但是二进制文件没有显示。

如何找到包含二进制文件的 python 包?

【问题讨论】:

  • 不幸的是,我不知道该问题的一般解决方案。但在您的特殊情况下,它应该是 ncurses 包:packages.ubuntu.com/…
  • 感谢@cel,但我使用的是 Arch Linux 软件包,并且正在寻找带有 miniconda 之前在我的 PATH 中的二进制文件的 python 软件包。
  • 我很确定它将由 conda 的 ncurses 包提供。可以查看conda list |grep ncurses看是否安装。
  • @cel 我如何判断您是否正确? pip 似乎没有告诉我。
  • 你能在上面运行strings吗?

标签: python pip anaconda miniconda


【解决方案1】:
which python

它应该给你正确的道路

【讨论】:

    【解决方案2】:

    一个丑陋的解决方案是:

    1. 重命名文件
    2. 一一重新安装所有已安装的包 直到文件重新出现

    【讨论】:

      【解决方案3】:

      在混合 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 替换为您的 conda 所在的路径
      • ENVNAME 替换为您想要的 conda 环境名称

      (第一个配方来自 OP)

      【讨论】:

        猜你喜欢
        • 2016-02-02
        • 2021-12-24
        • 2015-05-10
        • 2014-08-29
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        相关资源
        最近更新 更多