无法在Windows 10中激活Python venv

7

我使用命令提示符创建了一个虚拟环境,命令为 python -m venv myenv,但是我不知道如何激活它。我尝试在命令提示符中执行activate.bat,但它没有激活。

换句话说,我发现当前路径没有更改为 (myenv) C:\Pathname...,以表明已经激活了虚拟环境myenv。当我执行activate.bat时,虚拟环境并没有被激活。


是的,没错。我是唯一一个遇到这个问题的人吗? - Sunny
1
看起来它在PowerShell上运行正常,谢谢。 - Sunny
澄清一下,你现在改用PowerShell中的Activate.ps1了吗?但之前你肯定是在运行cmd.exe,而activate.bat无法正常工作? - Eryk Sun
是的,cmd.exe activate.bat 不起作用,但将执行策略更改为无限制后,PowerShell Activate.ps1 起作用了。 - Sunny
Activate.ps1 应该在执行策略设置为 RemoteSigned 的情况下工作。不过,如果可以的话,请编辑您的问题以包含无法工作的 activate.bat 文件。 - Eryk Sun
显示剩余7条评论
1个回答

7

这个帖子已经很老了,但我今天遇到了同样的问题,并找到了一个有效的解决方法。我使用Python 3.6 venv已有几个月了,一直没有问题,但今天我遇到了一个新的错误信息:

C:\test>python -m venv vm
Error: Command '['C:\\test\\vm\\Scripts\\python.exe', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

我在Stack和其他资源中搜寻答案,但并没有找到与Windows 10特定相关的解决方案(AskUbunto有一个特定于Linux的解决方案)。我在网络上找到了一些线索,并将它们拼凑在一起。

您需要这个python脚本:https://bootstrap.pypa.io/get-pip.py

  1. 像往常一样安装虚拟环境,但不要安装pip:

    python -m venv virtual --without-pip

此方法将创建所有必要的文件,包括 activate bat 文件。

  1. 将get-pip.py文件复制到virtual\Scripts子目录中

  2. 进入Scripts子目录并“激活”python。注意:命令行应该显示从中激活python的目录:

    (virtual) C:\test\virtual\Scripts>

(如果它显示(root),则已激活核心安装)

  1. 现在执行脚本

    C:\test\virtual\Scripts>python get-pip.py

运行后,我键入:

(virtual) C:\test\virtual\Scripts>pip freeze

To generate a freeze list and verify proper installation, 执行以下命令。它不应该返回任何内容,没有错误消息,没有freeze list。
然后我安装了flask,执行pip freeze,注意返回的结果只包含flask和相关依赖文件:
(virtual) C:\test\virtual\Scripts>pip freeze click==6.7 Flask==0.12.2 itsdangerous==0.24 Jinja2==2.9.6 MarkupSafe==1.0 Werkzeug==0.12.2

有人知道是什么原因导致Python/Windows出现这种状态吗? - kas
实际上,我的Python项目根目录下有一个名为“copy.py”的自定义Python文件。将该文件重命名为独特的名称后,问题得到了解决。 - kas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接