包创建文件不从.bashrc fi获取值

2024-06-17 08:26:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,对于gui,我使用wxpython。你知道吗

我的问题是:

我必须为两种产品(比如产品1和产品2)创建一个debian文件自述文件包创建文件。对于“.bashrc”中的“product1”,我们必须更改

                Product = product1 

之后,我们必须在新终端中执行“make clean”(否则.bashrc中的更改将不会生效,即如果我们不遵循此过程,“product”可能不等于“product 1”),然后我们必须运行/自述文件包创建.过程。在自述文件包创建然后自动将产品类型取为“产品1” 如果我手动做这件事,它将工作良好,但如果我这样做,通过图形用户界面它自述文件包创建文件将不采用产品类型。将从python发送空值。 请帮忙解决我的问题。 我的代码是:

      subprocess.call("sed -i '/export PRODUCT/d' .bashrc", shell=True)
      subprocess.call("sed -i '/export BOARD=TYpe/ a\ export PRODUCT=product1' .bashrc", shell=True)
      os.chdir("/home/x/y/z")
      subprocess.call("make clean", shell=True)
      os.chdir("/home/x/main/src/package")
      subprocess.call("sed -i 's/re.build -f -gui -p all/re.build -gui -p all -svn no/' README.package.creation", shell=True)
      subprocess.call("gksu debian", shell=True)
      subprocess.Popen("xfce4-terminal -e 'bash -c \"./README.package.creation -u %s\";sleep 10'" % (str(u_name)),shell=True)

如何做之后,我必须遵循同样的程序产品2也

编辑: 怎么样操作系统环境在python中? 我试着改变os.putenv公司然后操作系统环境好像没用。你知道吗


Tags: 文件truepackage产品osgui自述文件export
2条回答

你的问题很简单,问题也很简单解决方案:。你知道吗

subprocess.Popen(...)中,将调用更改为:

subprocess.Popen("xfce4-terminal -e 'bash -c \"./README.package.creation -u %s\";sleep 10'" % (str(u_name)),shell=True)

收件人:

subprocess.Popen("xfce4-terminal -e 'bash -c \"source ~/.bashrc; ./README.package.creation -u %s\";sleep 10'" % (str(u_name)),shell=True)

本质上,在调用包创建命令之前,您要求bash获取.bashrc文件的源代码。你知道吗

另一个例子:

sgulati@precise:~$ cat /tmp/1.sh
export A=100
sgulati@precise:~$ python -c "import subprocess
print subprocess.Popen(['bash', '-c', 'source /tmp/1.sh; echo \$A'], stdout=subprocess.PIPE).stdout.read()"
100

在本例中,我在/tmp/1.sh中声明变量A=100source然后执行echo $A。由于source /tmp/1.sh,在执行echo $AA的值是已知的。你知道吗

请注意,我在示例中使用的语法是来自python 2.7.3的语法,但是无论您如何处理,这个概念都非常相同。你知道吗

尝试:

  import OS
  os.environ['product']='product1'
  subprocess.call("make clean", shell=True)

等等

相关问题 更多 >