激活venv时权限被拒绝

时间:2017-08-07 20:04:19

标签: python macos

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

我试过了

sudo chown -R user:user project/venv

但我得到

chown: user: illegal group name

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

我在Mac上。

7 个答案:

答案 0 :(得分:87)

你需要运行

. venv/bin/activate

source venv/bin/activate

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

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

评论中有人询问了.命令。来自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内置的内容相同。

答案 1 :(得分:1)

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

python3 -m venv .venv

source .venv/bin/activate

答案 2 :(得分:0)

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

在激活所在的所需路径上的根目录下面的权限命令

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

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

然后执行~/bin/activate

答案 3 :(得分:0)

这在Mac上对我有效。

source ./bin/activate

答案 4 :(得分:0)

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

答案 5 :(得分:-2)

从命令行root输入:

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

为我工作

答案 6 :(得分:-3)

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

并选中执行

打开此图像:

enter image description here