我刚开始一个新的python项目,并通过在终端中运行virtualenv venv
在项目文件夹中创建了一个venv。但是,当我运行venv/bin/activate
时,我收到了一个权限被拒绝的错误。
我试过了
sudo chown -R user:user project/venv
但我得到
chown: user: illegal group name
我已经将这些venvs设置了很多次并且从未遇到过这个问题。还有什么我可以尝试的吗?
我在Mac上。
答案 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)