【发布时间】:2013-06-18 12:01:22
【问题描述】:
我是 python 新手,对于 GUI,我使用 wxpython。
我的问题是这样的:
我必须为两种类型的产品(比如产品 1 和产品 2)创建一个 debian 文件。这可以通过运行 README.package.creation 文件来完成。对于“.bashrc”中的“product1”,我们必须更改
Product = product1
之后我们必须在新终端中执行“make clean”(否则 .bashrc 中的更改将不会生效,即如果我们不遵循程序,“product”可能不等于“product 1”),然后我们有运行 ./Readme.package.creation.process。在 Readme.package.creation 中,它会自动将产品类型设为“产品 1” 如果我手动执行此操作,它将正常工作,但如果我通过 GUI 执行此操作,则 Readme.package.creation 文件将不会采用产品类型。从 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.environ怎么样? 我尝试用 os.putenv 进行更改,然后 os.environ 似乎无法正常工作。
【问题讨论】:
-
你的
~/.bashrc应该很有趣。 -
@devnull:不是我的,我的公司:)
-
我觉得你不需要打开一个新的终端,你可以
source ~/.bashrc。但我不明白你的问题:你想创建一个 debian 包但你想使用 ~/.bashrc?这是非常愚蠢的解决方案 - 想一想:如果任何其他人想从您的程序创建一个包 - 他/她的包会有所不同,因为(s)他不使用 bash 并且使用例如zsh? -
@uzsolt 如果我使用 source ~/.bashrc 它不会对 .bashrc 产生任何影响,因为它适用于我的公司,所以这里都只使用 bash
-
@nammu 所以,只是为了澄清:你想构建 debian 包吗?如果是,我认为 debian-package 应该独立于 bashrc。如果要生成两个版本,可以创建两个文件,也可以使用条件。还是我误会了你?
标签: python bash wxpython debian subprocess