【问题标题】:Permission denied when activating venv激活venv时权限被拒绝
【发布时间】:2018-01-15 05:30:14
【问题描述】:

我刚刚开始了一个新的 python 项目,并通过在终端中运行 virtualenv venv 在项目文件夹中创建了一个 venv。但是,当我运行 venv/bin/activate 时,我得到一个权限被拒绝的错误。

我试过了

sudo chown -R user:user project/venv

但我明白了

chown: user: illegal group name

我已经将这些 venvs 设置了很多次,但从未遇到过问题。还有什么我可以尝试的吗?

我在 Mac 上。

【问题讨论】:

  • 你确定不是user:users
  • 您输入了整个命令吗? source venv/bin/activate别忘了source部分

标签: python macos


【解决方案1】:

你需要跑

. venv/bin/activate

source venv/bin/activate

activate 文件故意不可执行,因为它必须有来源。

它必须有来源,因为它需要对环境进行更改。如果它作为脚本运行,它只会对用于运行脚本的子进程的环境进行更改。

cmets 中有人询问. 命令。来自man page for bash

    .  filename [arguments]
   source filename [arguments]
          Read  and execute commands from filename in the current shell
          environment and return the exit status of the last command
          executed from filename.

简而言之,. 是一个内置的 shell,与内置的 source 含义相同。

【讨论】:

  • 我必须在~/.zshrc 中添加export VIRTUAL_ENV_DISABLE_PROMPT= 行,然后它就起作用了。重要的是没有价值。 OSX 10.13.6 上的 zsh 5.7 (x86_64-apple-darwin17.7.0)
  • 我花了 2 天时间找到这个答案:{}
  • 这是一个了不起的答案。非常感谢
  • 这有点隐藏在表格中的文档docs.python.org/3/library/… 中,大约在页面的中间
【解决方案2】:

从命令行根目录输入:

source /home/<your_username>/<app_folder>/<venv_name>/bin/activate

为我工作

【讨论】:

    【解决方案3】:

    基本上,它正在寻找在创建的文件夹路径上执行激活的权限。

    在 root 上,在激活所在的所需路径上提供以下权限命令

    sudo chmod -R 755 ~/tensorflow/* # or whatever the target structure 
    

    这将扩展所有权限,包括读/写/执行和组

    然后执行~/bin/activate

    【讨论】:

    • 您不想使激活脚本可执行。将该脚本作为子进程运行不会对环境进行必要的更改。错误地认为环境已经改变而采取的后续行动可能会导致重要数据的丢失。这个答案应该被删除。
    【解决方案4】:

    去激活文件右键打开属性-->权限

    并检查执行

    打开这张图片:

    【讨论】:

      【解决方案5】:

      在我的 VSC 上,我使用了这些并且效果很好。

      python3 -m venv .venv
      
      source .venv/bin/activate
      

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题,这对我有用:. venv/bin/activate

        【讨论】:

          【解决方案7】:

          从虚拟环境文件夹中可以输入:

          source ./bin/activate
          

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-30
          • 2015-05-15
          相关资源
          最近更新 更多