为什么我在激活 venv 时收到“权限被拒绝”?

问题描述 投票:0回答:9

我刚刚启动了一个新的 python 项目,并通过在终端中运行

virtualenv venv
在项目文件夹中创建了一个 venv。但是,当我运行
venv/bin/activate
时,我收到权限被拒绝错误。

我已经尝试过了

sudo chown -R user:user project/venv

但我明白了

chown: user: illegal group name

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

我使用的是 Mac。

python macos
9个回答
528
投票

你需要跑步

. venv/bin/activate

source venv/bin/activate

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

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

评论中有人询问

.
命令。来自 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
内置的意思是一样的。


22
投票

在我的 VSC 上,我使用了这些并且它有效。

python3 -m venv .venv

source .venv/bin/activate

18
投票

venv/bin/activate

venv/bin/activate

activated successfully 'source'命令需要在激活文件的完整路径之前添加。

例如。

  • your_project_folder_path/venv/bin/activate

**

如果您位于项目文件夹内,则执行以下命令-

  • 源 venv/bin/activate

注意:我创建了名为

venv
的虚拟环境文件夹,如果您的名称不同,则写下该名称而不是 venv


7
投票

我遇到了同样的问题,这对我有用:

. venv/bin/activate


5
投票

在虚拟环境文件夹中可以键入:

source ./bin/activate

是的,如果您遇到权限问题,请向上一个文件夹执行以下操作 源./文件夹虚拟环境/bin/activate


0
投票

转到项目的根目录并尝试以下操作:

. ./env/bin/activate

为我工作。


-6
投票

从命令行根目录输入:

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

为我工作


-7
投票

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

在根目录上,在激活所在的所需路径上给出以下权限命令

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

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

然后执行

~/bin/activate


-8
投票

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

并检查执行

打开此图片:

© www.soinside.com 2019 - 2024. All rights reserved.