【问题标题】:Run pip package via absolute path通过绝对路径运行 pip 包
【发布时间】:2019-04-02 10:27:44
【问题描述】:

在我的Ubuntu 18.04.1 LTS 上,我使用pip 包管理器安装了pipenv 包。可以从 ssh 登录 bash 访问包。

$ pipenv --version

将打印出以下输出:

pipenv,版本 2018.10.13

想要什么:

我需要使用绝对路径运行$ pipenv --version 命令。所以它应该是这样的:

$ /absolute/path/to/pipenv --version

但到目前为止,它似乎无法通过这种方式工作。

我尝试了什么:

$ pip show pipenv

名称:pipenv

版本:2018.10.13

位置:/user/.local/lib/python2.7/site-packages

需要:enum34、virtualenv、打字、证书、virtualenv-clone、pip、setuptools

...

我从上面的输出中复制了位置,我尝试了这些,但仍然不起作用:

  • $ /user/.local/lib/python2.7/site-packages/pipenv --version
  • $ /user/.local/lib/python2.7/site-packages/pipenv/pipenv --version

我也试过了:

which pipenv - 输出空字符串

【问题讨论】:

  • which pipenv?
  • 我更新了问题。
  • 这很奇怪,pipenv --version 有效,但which pipenv 没有输出 - 这是别名还是函数? type pipenv 有输出吗?作为替代方案,您可以运行pip show -f pipenv,它应该打印所有使用pipenv 包安装的文件。您应该能够在其他文件中看到可执行文件,例如../../../pipenv。将此路径与Location: 行中打印的路径结合起来,您应该得到可执行文件的路径。在你的情况下可能是/user/.local/bin/pipenv,但不能肯定地说。
  • @hoefling 基本上可执行文件的路径是按照您的建议使用type pipenv 打印的。如果您愿意,请随时创建答案。我会欣然接受!感谢您的帮助。

标签: unix pip


【解决方案1】:

回顾一下cmets,如果pipenv命令可用,你可以:

  1. 如果pipenvPATH 中的可执行文件,则运行command -v pipenvwhich pipenv
  2. 如果pipenv 是别名或函数,则运行type pipenv

如果该命令不可用,您可以从包元数据中提取有关可执行文件的信息:运行

$ pip show -f pipenv

列出属于pipenv包的文件(如果输出为空,则表示pip所指的Python版本没有安装pipenv)。除其他外,它会为您打印包裹位置,类似于

Location: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages

和其他文件,可执行文件:

../../../bin/pipenv

这是相对于上述Location 的路径 - 解析后的路径将引导您到可执行文件。

【讨论】:

    猜你喜欢
    • 2016-08-12
    • 2012-06-19
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2018-08-08
    • 2014-05-19
    相关资源
    最近更新 更多