首页 > 解决方案 > 无法“激活” virtualenv

问题描述

在虚拟环境中运行 Python 的新手,与 Django 混淆,并且无法激活虚拟环境。

花了最后 4 小时试图在本地终端/VS 代码上激活虚拟环境 (venv),但没有成功。

避免“sudo pip install virtualenv”,因为我试图避免以 root 身份安装并具有不同的目录路径等。

“pip install virtualenv”输出:

使用缓存的 virtualenv-20.0.31-py2.py3-none-any.whl (4.9 MB) 收集 virtualenv
已满足要求:/Users/garrettpinto/Library/Python/3.8/lib/ 中的六个<2,>=1.9.0 python/site-packages(来自 virtualenv)(1.15.0)
要求已经满足:/Users/garrettpinto/Library/Python/3.8/lib/python/site-packages 中的 appdirs<2,>=1.4.3(来自 virtualenv) (1.4.4)
已满足要求:/Users/garrettpinto/Library/Python/3.8/lib/python/site-packages 中的 filelock<4,>=3.0.0 (来自 virtualenv) (3.0.12)
已满足要求: distlib<1,>=0.3.1 in /Users/garrettpinto/Library/Python/3.8/lib/python/site-packages (from virtualenv) (0.3.1)
安装收集的包:virtualenv
成功安装 virtualenv-20.0.31

“virtualenv venv”输出:

在 416 毫秒内创建虚拟环境 CPython3.8.5.final.0-64
创建者 CPython3Posix(dest=/Users/garrettpinto/Desktop/rp-portfolio/distribution/venv, clear=False, global=False)
播种器 FromAppData(download=False, pip =bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/garrettpinto/Library/Application Support/virtualenv)
添加种子包:pip==20.2.2, setuptools==49.6.0, wheel== 0.35.1
激活器 BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

“source venv/bin/activate”什么都不返回

“./venv/bin/activate”输出:

zsh:权限被拒绝:./venv/bin/activate

“sudo ./venv/bin/activate”输出:

sudo: ./venv/bin/activate: 找不到命令

想法?

标签: pythondjangopipvirtualenvpython-venv

解决方案


欢迎来到堆栈溢出。

由于虚拟环境是如何演变的,因此有很多关于虚拟环境的令人困惑的信息。从 Python 3.3 开始,该venv模块可作为标准库的一部分与 Python 一起使用,以创建虚拟环境,如果您刚刚开始,我建议您先学习它。安装 Python 3.8 后,无需安装任何额外内容。

在 VSCode 终端的项目主目录中,试试这个:

python3 -m venv venv
. venv/bin/activate
pip install Django

以下是这三行的作用:

  1. 调用 Python 模块venv并在目录中创建一个新的虚拟环境venv
  2. 运行脚本以激活位于路径中的虚拟环境venv/bin/activate
  3. 现在venv已激活,安装 Django。

首次安装后,您只需重复步骤 (2) 即可激活它。您还可以在启动 IDE 时将 VSCode 指向自动启动它。您可以在安装完 Python 插件后点击 VSCode 底部的栏,选择venv您创建的 Python 版本。祝你好运!

更新:

zsh这是在我的机器上运行的示例:

$ zsh
% python3 --version
Python 3.8.2
% python3 -m venv venv
% . venv/bin/activate
(venv) % pip install Django
Collecting Django
Collecting pytz (from Django)
Collecting asgiref~=3.2.10 (from Django)
Collecting sqlparse>=0.2.2 (from Django)
Installing collected packages: pytz, asgiref, sqlparse, Django
Successfully installed Django-3.1.1 asgiref-3.2.10 pytz-2020.1 sqlparse-0.3.1

推荐阅读