【问题标题】:How to install virtualenv scripts to /usr/bin如何将 virtualenv 脚本安装到 /usr/bin
【发布时间】:2012-07-23 15:50:29
【问题描述】:

我用命令sudo /usr/bin/pip-2.6 install virtualenv安装virtualenv

它说

Requirement already satisfied (use --upgrade to upgrade): 
virtualenv in /usr/local/lib/python2.6/dist-packages
Cleaning up...

为什么 pip 从 /usr/bin 寻找 /usr/local/lib?

我需要将virtualenv脚本直接安装到/usr/bin,所以我写了

sudo /usr/bin/pip-2.6 install --install-option="--install-scripts=/usr/bin" virtualenv

但它再次响应

Requirement already satisfied (use --upgrade to upgrade): 
virtualenv in /usr/local/lib/python2.6/dist-packages
Cleaning up...

添加 --upgrade 没有帮助。

如何将 virtualenv 脚本安装到 /usr/bin ?

【问题讨论】:

  • 有什么理由必须是 /usr/bin 吗? /usr/bin 和 /usr/local/bin 默认都在 $path 中。
  • 我制作了一个 puppet 脚本,它安装不同的 python 版本并创建 virtualenvs。为了不每次都安装 virtualenv,使用 puppet 的参数 'creates' 检查文件是否存在是很方便的。所以我想断言 /usr/bin/virtualenv-2.6 在我安装后存在。

标签: python virtualenv pip


【解决方案1】:

对于您当前的问题,您可以先使用 pip 卸载 virtualenv,然后使用 --script-dir=DIR, -s DIR 作为 --install-option 重新安装。

至于您在运行 pip 时遇到的问题,带有额外的参数并且安装似乎没有做任何事情,这可能会在 https://github.com/pypa/pipdevelop 分支上修复,如果没有,请在 GitHub 问题跟踪器上向我们提交错误以获取 pip .

至于为什么会这样 - 安装是基于 python 安装而不是 pip 的位置。 Pip 在后台使用 setuptools/distribute 并符合运行它的 python 的配置。

您可以通过运行它来查看您正在使用的 python 版本安装到哪里 - 在这种情况下可能是 python2.6 并查询 sys 模块。


>>> import sys
>>> sys.prefix
>>> sys.exec_prefix

另见distutils.sysconfig

更多信息:

【讨论】:

    【解决方案2】:

    试试:

    sudo /usr/bin/pip-2.6 install --install-option="--prefix=/usr/bin" virtualenv
    

    (source).

    【讨论】:

    • 同样的结果。而且我不需要将它安装到/usr/bin。我只是想在那里有 sciprts。
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2012-09-14
    • 2021-03-09
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    相关资源
    最近更新 更多