我刚开始使用CircleCI。我有一个Python脚本,用来调用一些os命令,比如
path = "/Users/Name/Dev"
os.makedirs(path)
cmds = ["cd path", "touch hello.txt"]
cmd = "; ".join(cmds)
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)但是,每当我尝试访问目录时,都会遇到PermissionError: [Errno 13] Permission denied: /Users/Name/Dev。也不能cd,不能写等等。这是在CircleCI上运行时,但在我的个人机器上工作良好。
有什么办法可以让我试试吗?如何修复虚拟机上的这些权限问题?
CircleCI的config.yml设置如下所示:
build-and-test:
machine:
resource_class: large
image: ubuntu-****
environment:
CI_VARIABLE: "8.0.1"
working_directory: ~/repo发布于 2020-09-03 16:41:31
我相信这是因为您正在尝试在CircleCI机器的/中创建一组文件夹Users/Name/Dev。由于安全限制(可能是创建文件夹和编写内容的权限),您应该不能这样做。
更好的方法是使用环境变量在home文件夹中创建一个文件夹Dev,如下所示:
path = os.path.join(os.environ['HOME'], 'Dev')
os.makedirs(path)
cmds = ["cd '" + path + "'", "touch hello.txt"]
cmd = "; ".join(cmds)
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)这样,您将始终为用户获得一个可写文件夹,因为它始终是主文件夹。
https://stackoverflow.com/questions/63719830
复制相似问题