【问题标题】:Can not activate a virtualenv in GIT bash mingw32 for Windows无法在 Windows 的 GIT bash mingw32 中激活 virtualenv
【发布时间】:2012-05-14 03:01:07
【问题描述】:

当我尝试从 GIT bash mingw32 激活我的 virtualenv 时,我没有得到预期的响应。

注意:py 是我的 Google Drive 文件夹中 Python 项目的文件夹。 hy 是我运行 virtualenv --distribute hy 时创建的 virtualenv 文件夹。

s3z@s3z ~/Google Drive/py/hy
$ Scripts/activate

所以你看,s3z@s3z ~/Google Drive/py/hy之前没有出现预期的(hy)

s3z@s3z ~/Google Drive/py/hy
$ Scripts/activate.bat
Scripts/activate.bat: line 1: @echo: command not found
Scripts/activate.bat: line 4: syntax error near unexpected token `('
Scripts/activate.bat: line 4: `if not defined PROMPT ('

当定位到实际文件名activate.bat 时,我会收到错误消息。然后我尝试停用以查看会发生什么,因为我认为 virtualenv 可能已激活但被隐藏。

s3z@s3z ~/Google Drive/py/hy
$ Scripts/deactivate.bat
Scripts/deactivate.bat: line 1: @echo: command not found
Scripts/deactivate.bat: line 3: syntax error near unexpected token `('
Scripts/deactivate.bat: line 3: `if defined _OLD_VIRTUAL_PROMPT ('

s3z@s3z ~/Google Drive/py/hy
$ Scripts/deactivate
sh.exe": Scripts/deactivate: No such file or directory

有什么想法吗?

【问题讨论】:

    标签: python git bash virtualenv git-bash


    【解决方案1】:

    Scripts/activate 在新的 shell 实例中运行脚本,该实例在脚本执行后被销毁。要在当前 shell 中运行脚本,请使用 . Scripts/activatesource Scripts/activate

    Scripts/activate.bat 在这里不起作用,因为它是用 Batch、Windows cmd.exe 语言而不是 Bash 编写的。

    【讨论】:

    • 这仅适用于 virtualenv 1.7.1 及更高版本。
    • 您需要单独安装virtualenv 才能正常工作。 Python 3 内置的python -m venv 命令不会创建相同的activate 脚本。
    • 有没有办法可以将它添加到 Pycharm 终端路径以自动调用它?
    • 我通过github.com/DjangoGirls/tutorial/issues/…bugs.python.org/issue22343 找到了一个解决方法。使用前基本上复制 C:\Python35\Lib\venv\scripts\posix\activate 到 C:\Python35\Lib\venv\scripts\nt\ 文件夹中。
    【解决方案2】:

    在 Windows10 上,您可以进入 Scripts 文件夹所在的 virtualenv 目录,然后输入以下命令

    source ./Scripts/activate
    

    注意 .(dot) 没有这个,当我像上面提到的那样使用它时,它会给我带来错误,然后 Pierre 提供的解决方案对我有用。

    【讨论】:

      【解决方案3】:

      如何使用 Git Bash 激活然后停用 venv


      要在 Windows 10 中访问您的 python,您需要在创建虚拟环境时添加 .exe。

      $ python.exe -m venv Scripts
      

      然后您可以进入为虚拟环境创建的 Scripts 文件夹。

      $ cd Scripts/
      

      现在你必须调用它来激活虚拟环境。

      $ source ./Scripts/activate
      

      完成后,您只需停用虚拟环境。

      $ deactivate
      


      【讨论】:

      • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
      • 我进行了您建议的编辑,以便对观众更具描述性。
      【解决方案4】:

      我知道这里已经有了答案,但我想我可以为那些像我一样晚点来这篇文章的人发布我的解决方案。安装 python 3.8.2 并确保在初始安装时选择了将 python 添加到 c 驱动器路径后,执行以下操作...

      1. 使用pip install virtualenv 安装virtualenv,然后进行测试。

      2. 进入你的项目文件夹,输入pip freeze这将显示所有 新项目可能不需要的已安装包。

      3. 输入python -m venv ./venv,然后输入cd venv

      4. 键入. Scripts/activate。您现在应该看到(venv),这是名称 你在第 3 步中放弃了。

      5. cd .. 返回项目文件夹的根目录并键入 pip freeze 以 如果可以为新项目检查此虚拟环境。

      (venv) user@DESKTOP MINGW64 ~/Documents/yourproject

      【讨论】:

        【解决方案5】:

        我有同样的错误: 在您的 bash 运行中,此表扬:source venv/Scripts/activate 然后使用此推荐检查它是否有效: pip -V 我希望这很有用。

        【讨论】:

          【解决方案6】:

          只需在您的虚拟环境文件夹中执行. Scripts/activate

          【讨论】:

            【解决方案7】:
            Danyal Abbasi@DESKTOP-7I43AM4 MINGW64 /e/Django-projects/studybudproject/studybud/Scripts
            $ . activate
            (studybud)
            Danyal Abbasi@DESKTOP-7I43AM4 MINGW64 /e/Django-projects/studybudproject/studybud/Scripts
            $ deactivate
            
            Danyal Abbasi@DESKTOP-7I43AM4 MINGW64 /e/Django-projects/studybudproject/studybud/Scripts
            $
            

            【讨论】:

            • 欢迎来到 Stack Overflow,感谢您提供答案。您能否编辑您的答案以包括对您的代码的解释?这将帮助未来的读者更好地理解正在发生的事情,尤其是那些不熟悉该语言并努力理解这些概念的社区成员。当社区已经验证了已接受的答案时,这一点尤其重要。在什么条件下你的方法可能更受欢迎?您是否在利用新功能?
            • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
            【解决方案8】:

            我最近遇到了这个问题,我找到了解决方案。 完成后

            $ cd Scripts
            

            在此之后,您只需键入

            $ source activate
            

            这将激活你的 venv

            只需键入即可停用

            $ deactivate
            

            你的venv被停用

            【讨论】:

              猜你喜欢
              • 2020-01-15
              • 2018-11-26
              • 1970-01-01
              • 1970-01-01
              • 2020-12-20
              • 2016-12-21
              • 2023-03-24
              • 1970-01-01
              相关资源
              最近更新 更多