Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode预操作运行python脚本环境变量,但未正确设置${PROJECT\u DIR}_Python_Xcode - Fatal编程技术网

Xcode预操作运行python脚本环境变量,但未正确设置${PROJECT\u DIR}

Xcode预操作运行python脚本环境变量,但未正确设置${PROJECT\u DIR},python,xcode,Python,Xcode,我正试图在构建前操作中从Xcode运行python脚本: #! /usr/bin/env python import shutil import os app_name = 'name' def skinfunction(root_src_dir, root_dst_dir): for src_dir, dirs, files in os.walk(root_src_dir): print(str(files)) dst_dir = src_dir.r

我正试图在构建前操作中从Xcode运行python脚本:

#! /usr/bin/env python
import shutil
import os

app_name = 'name'

def skinfunction(root_src_dir, root_dst_dir):
    for src_dir, dirs, files in os.walk(root_src_dir):
        print(str(files))
        dst_dir = src_dir.replace(root_src_dir, root_dst_dir)
        if not os.path.exists(dst_dir):
            os.mkdir(dst_dir)
        for file_ in files:
            src_file = os.path.join(src_dir, file_)
            dst_file = os.path.join(dst_dir, file_)
            if os.path.exists(dst_file):
                os.remove(dst_file)
            shutil.copy(src_file, dst_dir)
root_src_dir = '${PROJECT_DIR}/skins/'+str(app_name)+'/authorize_bg.imageset'
root_dst_dir = '${PROJECT_DIR}/iDetail/Images.xcassets/authorize_bg.imageset'
skinfunction(root_src_dir,root_dst_dir);

接近脚本末尾时,我试图获取PROJECT_DIR Xcode环境变量,但它无法正常工作。该值无效或“我的格式设置”已关闭

如果我硬编码PROJECT_DIR值(指向项目所在位置的完整url),脚本将成功运行


在尝试获取环境变量时,我是否遗漏了什么

好的,我找到了答案,您需要调用os.getenv()函数,而不是使用${PROJECT\u DIR}直接获取环境变量。我可以通过调用以下命令获取环境变量:

proj_dir = os.getenv('PROJECT_DIR')

不太清楚python,但如果有人在使用/bin/sh,您可以直接使用
$PROJECT\u DIR
,非常方便!