我刚刚启动了一个新的 python 项目,并通过在终端中运行
virtualenv venv
在项目文件夹中创建了一个 venv。但是,当我运行 venv/bin/activate
时,我收到权限被拒绝错误。
我已经尝试过了
sudo chown -R user:user project/venv
但我明白了
chown: user: illegal group name
我已经多次设置这些虚拟机,但从未遇到过问题。还有什么我可以尝试的吗?
我使用的是 Mac。
你需要跑步
. 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
内置的意思是一样的。
在我的 VSC 上,我使用了这些并且它有效。
python3 -m venv .venv
source .venv/bin/activate
我遇到了同样的问题,这对我有用:
. venv/bin/activate
转到项目的根目录并尝试以下操作:
. ./env/bin/activate
为我工作。
从命令行根目录输入:
source /home/<your_username>/<app_folder>/<venv_name>/bin/activate
为我工作
基本上,它正在寻找在创建的文件夹路径上执行激活的权限。
在根目录上,在激活所在的所需路径上给出以下权限命令
sudo chmod -R 755 ~/tensorflow/* # or whatever the target structure
这将扩展所有权限,包括读/写/执行和组
然后执行
~/bin/activate