Pyinstaller -w exe仍然在Windows中打开终端

blpfk2vs  于 2023-08-07  发布在  Windows
关注(0)|答案(1)|浏览(150)

我运行以下命令将我的脚本从.py转换为.exe:
第一个月
在添加了一些添加得不好的包之后,GUI通过我的tkinter脚本打开。但是当我在Windows中使用tkinter窗口运行代码时,每当有subprocess.run或os.system函数时,它都会打开一个新的终端窗口。有什么办法可以抑制这些吗?或者至少使它们最小化或不引人注目?
下面是一段gui_script.py,它结合了两个文件,打开了一个外部终端窗口。

import os

os.system('copy cDNA.fa+ncRNA.fa transcriptome.fa /b')

字符串

dfty9e19

dfty9e191#

我开始使用python工具来合并文件:

with open('transcriptome.fa','wb') as transcriptome_file:
        for fasta_file in ['cDNA.fa','ncRNA.fa']:
            with open(fasta_file,'rb') as current_fasta:
                shutil.copyfileobj(current_fasta, transcriptome_file)

字符串
以及下载较大的文件:

with requests.get('http://ftp.ensembl.org/pub/current_fasta/'+species+'/cdna/'+cDNA_file_name, stream=True) as cDNA_request:
        with open('cDNA.fa.gz', 'wb') as cDNA_gz_file:
            shutil.copyfileobj(cDNA_request.raw, cDNA_gz_file)


尽管如此,我仍然需要运行一个外部程序blast,所以我使用subprocess.run和creationflag = subprocess.CREATE_NO_WINDOW参数如下:

if os.name == 'nt':
    blast_db_run = subprocess.run(['makeblastdb',
                            '-in', fasta_file,
                            '-dbtype', 'nucl',
                            '-out','blast_db'],
                            capture_output=True, 
                            creationflags = subprocess.CREATE_NO_WINDOW)


使用if语句,因为creationflags显然在非windows环境中不起作用。

相关问题