【问题标题】:Can't "activate" virtualenv无法“激活” virtualenv
【发布时间】:2020-12-20 23:51:05
【问题描述】:

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

过去 4 小时试图在本地终端/VS Code 上激活虚拟环境 (venv),但没有成功。

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

“pip install virtualenv”输出:

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

“virtualenv venv”输出:

在 416ms 内创建虚拟环境 CPython3.8.5.final.0-64
创建者 CPython3Posix(dest=/Users/garrettpinto/Desktop/rp-portfolio/distribution/venv, clear=False, global=False)
播种机 FromAppData(下载=假,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: 找不到命令

想法?

【问题讨论】:

  • 删除 venv,确保您运行/安装的权限正确,这样您就不需要 sudo 并重试。
  • @markwalker_ 我在 venv 目录中使用了“chmod -R 0777”,但仍然无法使用“source venv/bin/activate”

标签: python django pip virtualenv python-venv


【解决方案1】:

欢迎来到 Stack Overflow。

由于虚拟环境是如何演变的,因此存在很多关于虚拟环境的令人困惑的信息。从 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

【讨论】:

  • 因此,即使使用“python3 -m venv venv”,“.venv/bin/activate”也没有激活虚拟环境
  • 因为我使用的是 zsh 而不是 bash,所以它不起作用吗? "activate" 文件的前两行读取: # This file must be used with "source bin/activate" from bash # you cannot run it directly
  • 我已经更新了我的答案,表明它适用于我的机器上的zsh。您运行的是 MacOS、Ubuntu 还是其他软件?
【解决方案2】:

我被困了好一阵子 但你可以试试venv:

python -m venv virtualenvname

#to activate the virtual environment

source virtualenvname/Scripts/activate

【讨论】:

  • 适用于 Windows。 activate Windows 的脚本位于 venv\Scripts\activate,Unix 系统位于 venv/bin/activate
【解决方案3】:

虚拟环境创建但未激活问题的解决方法。

要激活,只需在 .(dot) 和您的 venv 路径之间添加一个空格。 IE $ . yourvirtualenv/bin/激活 希望这会奏效。但不要像这样使用: $ yourvirtualenv/bin/激活 要么 $ /yourvirtualenv/bin/激活 这是我的命令和输出: admin@osboxes:~/pysrc$ 。 my_env/bin/激活 (my_env) admin@osboxes:~/pysrc$
错误命令的输出: admin@osboxes:~/pysrc$ my_env/bin/activate bash:my_env/bin/activate:权限被拒绝 admin@osboxes:~/pysrc$ sudo my_env/bin/activate [sudo] 管理员密码: sudo:my_env/bin/activate:找不到命令 admin@osboxes:~/pysrc$ my_env/bin/activate bash:my_env/bin/activate:权限被拒绝 admin@osboxes:~/pysrc$

【讨论】:

    猜你喜欢
    • 2012-02-13
    • 2018-01-16
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多