【问题标题】:Pyenv choose virtualenv directoryPyenv 选择 virtualenv 目录
【发布时间】:2015-08-05 02:39:42
【问题描述】:

我刚开始使用pyenv来管理我的python版本,并开始使用pyenv virtualenv插件来管理我的virtualenvs,到目前为止,我很喜欢它。然而,我想念的一件事是,使用 virtualenv,您实际上可以将虚拟环境放置在存储库目录中,以便您的存储库是一个完全可重现的环境。有谁知道在pyenv中选择你的virtualenv目录的方法吗?

【问题讨论】:

    标签: python-3.x virtualenv pyenv


    【解决方案1】:

    简短回答:据我所知,你不能。

    它也不会真正起作用,对吧?如果您使用pyenv virtualenv 将virtualenv 安装到repo 中,然后将该repo 克隆到另一台机器上……新机器上的pyenv 如何知道控制repository 中的virtualenv?

    另外,“你可能不应该那样做”。 Virtualenvs 不是 100% 与底层 Python 安装解耦,也不是那么便携。你真的想用一堆容易复制的垃圾乱扔你的存储库吗?处理事情的“正确”方法可能是为 pip 维护一个requirements.txt — 这样您就可以在克隆您的存储库的任何地方轻松地重现您的开发环境。

    说了这么多,没有什么能阻止你使用普通的旧 virtualenv 在任何你喜欢的地方创建一个 virtualenv,即使你将 virtualenv 安装到了 pyenv 控制下的 Python 解释器中。该 virtualenv 本身当然不会pyenv 管理,但您仍然可以像往常一样使用它……

    【讨论】:

      【解决方案2】:

      这是项目跟踪器上的一个 GitHub 问题,询问此问题:https://github.com/pyenv/pyenv/issues/802

      reply by a project collaborator was:

      您可以在任何位置创建 virtualenv。要从 pyenv 中使用它,请在 ~/.pyenv/versions 中创建指向环境的符号链接

      虽然我必须说我是not very satisfied with this solution

      【讨论】:

        【解决方案3】:

        有一个解决方法

        在您的项目目录中,创建一个.python-version 文件。假设您已经使用pyenv-virtualenv 安装了一些虚拟环境,然后将此行附加到它(您可能需要更改版本号):

        3.7.1/envs/your-project-name@3.7.1
        

        每当你进入目录时,都会使用正确的python版本,而且效果很好。

        【讨论】:

        • 另外,pyenv 将使用命令pyenv local <name_of_virtualenv> 在您的当前路径中为您创建此文件。
        【解决方案4】:

        怎么样:

        pyenv install -s 3.8.3 # install preferred version if needed
        PYENV_VERSION=3.8.3 python -m venv /tmp/your/prefered/dir ; source /tmp/your/prefered/dir/activate
        

        注意这个方法使用的是venv,不是virtualenv,略有不同,是标准库的一部分。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-16
          • 2015-07-09
          • 2016-11-08
          • 1970-01-01
          相关资源
          最近更新 更多