从git bash为windows激活venv

问题描述 投票:9回答:5

我在windows上使用gitbash(7,64bit)。我尝试通过调用python -m venv venv使用python 3.4的内置venv模块创建一个venv,并且它成功创建,但是生成的venv不包含bash激活脚本,只有.bat.ps1

python 2.6.6(版本13.0.1)的virtualenv库在venv/Scripts/文件夹中创建了以下四个文件:activateactivate.batactivate.ps1activate_this.py

由于gitbash控制台无法使用bat或powershell脚本,我真的不想回到windows cmd提示符或VM,有什么方法我可以让pyvenv为我创建一个shell脚本我在窗户上?

python windows python-3.x virtualenv git-bash
5个回答
5
投票

这里的许多答案和评论都有很多混乱。他们中的一些人说你可以简单地做. activate,一些(@nme)said“你会得到”没有这样的文件或目录“错误,因为只有activate.bat和Activate.ps1这两个都不起作用。”

问题确实存在,如this issue所述。那个问题was eventually fixed at Jan 2017在Python 3.5.x,3.6.x之后。因此,仅在2017年1月之后发布的Python 3.5.3 +,3.6.1 +,3.7将修复此类问题。可能也是Python 2.7.14+。这意味着,如果您仍在阅读此问答页面,您需要做的第一件事是检查您正在使用的Python版本,然后可能进行升级。 (例如,我在旧的Python 3.6.0环境中遇到了同样的问题,在升级到Python 3.7.2之后,问题就消失了。)


8
投票

您不必担心虚拟env bash脚本的存在转到Git bash并使用. Scripts/activatesource Scripts/activate,如本主题中的答案所述Can not activate a virtualenv in GIT bash mingw32 for Windows


3
投票

这是(目前)设计。

在Windows中,仅安装了命令提示符(.bat)和PowerShell(.ps1)脚本。 The venv documentation说“脚本的调用是特定于平台的” - 请参阅该文档中的表,其中列出了在不同平台上激活venv的命令。如果您查看venv源代码,您可以看到它区分Windows和POSIX环境并相应地安装脚本。

但是,有一个open bug请求还应安装其他shell的脚本。在等待可能解决的问题时,有一种解决方法:您可以从本地计算机或cPython hg repositorydirect link to the file)获取bash(或其他shell)脚本,并将其放在Windows特定的旁边的Scripts文件夹中。您需要将__VENV_DIR__更改为您的venv所在的目录,将__VENV_BIN_NAME__更改为“bin”,并将__VENV_PROMPT__更改为激活venv时bash提示符所需的任何内容(例如,“(env)”)。设置权限,你应该很高兴。


1
投票

以下代码解释了如何在Git Bash中名为project的文件夹中设置和启动名为env_project的virtualenv:

mkdir project
cd project/
virtualenv env_project
. activate env_project/

1
投票

这对我有用:

. activate
© www.soinside.com 2019 - 2024. All rights reserved.