【问题标题】:How to get virtualenv to work with fish shell?如何让 virtualenv 与鱼壳一起工作?
【发布时间】:2012-06-08 21:38:44
【问题描述】:

我正在尝试让 virtualenv 与鱼壳一起工作。我安装了 virtualenv,它与 bash 和 zsh 一起工作得很好。但是,运行以下命令会返回fish: Unknown command 'source'

$ source ~/path/to/bin/activate

有谁知道如何让 virtualenv 和 fish shell 一起工作?

【问题讨论】:

标签: virtualenv fish


【解决方案1】:

您无需激活即可使用 virtualenv,这很方便。您可以直接使用 virtualenv:

virtualenv venv
./venv/bin/pip install foo

您是否尝试过使用:

. venv/bin/activate.fish

它可能不像 bash 那样广泛使用,因此可能会出现问题 - 查看提交历史会显示最近的修复:

https://github.com/pypa/virtualenv/blob/master/virtualenv_embedded/activate.fish

【讨论】:

  • 谢谢。我曾尝试过active.fish,但我需要将 virtualenv 更新到最新版本才能正常工作。
  • 如果您遇到特定的错误,请提交至github.com/pypa/virtualenv问题跟踪器
  • 非常适合我
  • @Lee 我遇到了这个问题。 paste.ubuntu.com/25955380 什么是“。”这里指的是?
  • 哦,是的,我每次使用某些东西时都会输入完整路径。听起来不错。
【解决方案2】:

对于virtualenv,fish在bin目录下有一个单独的激活文件,扩展名为.fish

所以你必须这样做:

$ source ~/path/to/bin/activate.fish

【讨论】:

  • 这绝对是任何人看这个的方法。接受的答案很好,但可能是在这个选项之前。
【解决方案3】:

你也可以使用这个:https://github.com/adambrenecki/virtualfish

它允许您通过键入以下内容来激活虚拟环境:

vf activate <my_env>

【讨论】:

    【解决方案4】:

    您可以使用虚拟鱼。

    Ian Bicking 的 virtualenv 的 Fish Shell 包装器,有点松散 基于 Doug Hellman 的用于 Bourne 兼容的 virtualenvwrapper 贝壳。

    来源: https://github.com/adambrenecki/virtualfish

    文档: http://virtualfish.readthedocs.org/en/latest/

    【讨论】:

      【解决方案5】:

      如果您不能使用activate.fish,您只需将bin 目录添加到您的PATH

      set -gx PATH /path/to/virtualenv/bin $PATH
      

      这几乎就是activate.fish 所做的一切(嗯,不完全是,它还取消设置PYTHONHOME,(无论如何我尝试它时都没有预先设置,YMMV);它试图弄乱你的fish_prompt )。

      另外:我是前 Bash 用户,开始使用 Fish 并且想念 Doug Hellman 的 virtualenvwrapper,所以我今天才开始使用 a replacement called virtualfish - 它有一些方便的快捷方式,您可能会觉得有用,虽然它是远不如 VEW 完整。

      【讨论】:

        【解决方案6】:

        (这个帖子好像快要关闭了,但我找到了解决办法:)

        使用 venv 环境进入一个新的鱼壳:

        begin; set -lx PATH (realpath ./venv)/bin $PATH; fish; end
        

        当venv目录为./venv时。

        要停用,只需 ctrl-d 或 exit


        另一种解决方案,它不调用子 shell。

        制作并输入一个venv环境:

        python3 -m venv ./venv
        set -lx PATH (realpath ./venv)/bin $PATH
        

        退出环境:

        set -lx PATH $PATH[2..-1]
        

        【讨论】:

        • 谢谢!实际上,这对我来说是最简单的解决方案。
        【解决方案7】:

        如果是 env 文件,试试这个 .env/bin/activate.fish 确保您的 env 文件在您的项目文件中,在我的情况下,它是一个 django 项目。 Tt 为我工作

        【讨论】:

          【解决方案8】:

          您可以使用 命令 - set VIRTUAL_ENV 'path to the virtual env directory' 示例 - set VIRTUAL_ENV '/home/aman/Desktop/test/venv'

          【讨论】:

            猜你喜欢
            • 2019-08-26
            • 2017-05-08
            • 2017-12-22
            • 2012-06-22
            • 2014-02-11
            • 2014-04-24
            • 1970-01-01
            • 2017-02-14
            • 2023-02-02
            相关资源
            最近更新 更多