Windows系统下执行go get安装github.com/gorilla/mux时出现“access is denied”权限错误
Windows系统下执行go get安装github.com/gorilla/mux时出现“access is denied”权限错误
问题描述
我尝试执行go get github.com/gorilla/mux来安装Gorilla Mux路由库,但在Windows系统上遇到了权限拒绝错误。
执行的命令:
go get github.com/gorilla/mux
得到的错误输出:
go: downloading github.com/gorilla/mux v1.8.1 go: github.com/gorilla/mux: open C:\Users\Golang\pkg\mod\cache\download\github.com\gorilla\mux@v\v1.8.1.lock: Access is denied.
解决方案
我之前处理过不少类似的Windows下Go模块权限问题,给你几个实用的解决办法,按顺序尝试应该能解决:
以管理员身份运行终端
Windows很多系统相关目录需要管理员权限才能写入,右键点击命令提示符(CMD)或PowerShell,选择「以管理员身份运行」,然后重新执行go get github.com/gorilla/mux命令,这是最常见也最快速的解决方式。检查并修改Go模块缓存目录的权限
错误提示里的C:\Users\Golang\pkg\mod\cache目录可能没有给当前用户开放写入权限:- 找到这个文件夹,右键选择「属性」
- 切换到「安全」标签页,找到你的用户账户
- 确保「写入」权限被勾选,如果没有,点击「编辑」按钮添加写入权限,保存后重试命令。
手动指定Go模块缓存路径
要是不想修改系统目录权限,可以把Go的缓存目录改到你有完全控制权的文件夹(比如个人文档目录):- 在终端里执行:
set GOMODCACHE=C:\Users\你的用户名\Documents\go-mod-cache - 接着再运行
go get github.com/gorilla/mux,这样缓存文件就会存在你指定的目录,不会触发权限问题。
- 在终端里执行:
关闭可能锁定文件的后台程序
有时候杀毒软件、安全卫士这类后台工具会锁定Go的缓存文件,导致无法写入。可以暂时关闭这类程序,完成安装后再重新开启。
备注:内容来源于stack exchange,提问作者Muhamad Ais Saputera




