QT普通命令执行系统
QT plain command execution like system
我有一个非常复杂的命令列表,它加载一个虚拟环境并对给定的文本执行多个命令。它与 system() 一起工作正常,但与 QProcess::execute 一起失败。这太可惜了,因为我想使用
QProcess process;
process.readAllStandardOutput();
在不弄乱管道的情况下读取输出。有没有办法给进程一个“愚蠢的”命令字符串,它像 system() 一样执行?
command = "bash -c \"" + prepend + "\\"" + text + "\\"" + append + "\"";
std::cout << command.toStdString().c_str() << std::endl;
//qDebug() << QProcess::execute(command.toStdString().c_str());
system(command.toStdString().c_str());
QT好像把参数弄乱了:
usage: program_name [-h] [--list_models [LIST_MODELS]] [--text TEXT]
Edit1:带 popen 的解决方案(丑陋但有效):
FILE *fp;
char path[1035];
fp = popen(command.toStdString().c_str(), "r");
if (fp == NULL)
{
printf("Failed to run command\n" );
exit(1);
}
while (fgets(path, sizeof(path), fp) != NULL)
{
QString line = path;
if(line.contains("Keyword"))
{
qDebug() << "=============================";
qDebug() << line;
qDebug() << "=============================";
}
}
pclose(fp);
Edit2:请求调试输出
programm_name started
bash -x -c "source /home/myusername/anaconda3/bin/activate; conda activate myenv; programm_name --text \"test\" --model_name tts_models/en/ljspeech/tacotron2-DCA --vocoder_name vocoder_models/en/ljspeech/mulitband-melgan --out_path /home/myusername/projects/tts/soundoutput/"
+ unset _mlre _mlIFS _mlshdbg
+ '[' 0 = 1 ']'
+ '[' -n x ']'
+ _mlIFS='
'
+ IFS=' '
+ '[' -n '' ']'
++ /usr/bin/tclsh /usr/lib/x86_64-linux-gnu/modulecmd.tcl bash autoinit
+ eval 'module()' '{
' unset _mlre _mlIFS '_mlshdbg;
' if '[' '"${MODULES_SILENT_SHELL_DEBUG:-0}"' = ''\''1'\''' '];' 'then
' case '"$-"' 'in
' '*v*x*)' set '+vx;' '_mlshdbg='\''vx'\''' ';;
' '*v*)' set '+v;' '_mlshdbg='\''v'\''' ';;
' '*x*)' set '+x;' '_mlshdbg='\''x'\''' ';;
' '*)' '_mlshdbg='\'''\''' ';;
' 'esac;
' 'fi;
' if '[' -n '"${IFS+x}"' '];' 'then
' '_mlIFS=$IFS;
' 'fi;
' 'IFS='\''' ''\'';
' for _mlv in '${MODULES_RUN_QUARANTINE:-};' 'do
' if '[' '"${_mlv}"' = '"${_mlv##*[!A-Za-z0-9_]}"' -a '"${_mlv}"' = '"${_mlv#[0-9]}"' '];' 'then
' if '[' -n '"`eval' ''\''echo' '${'\''$_mlv'\''+x}'\''`"' '];' 'then
' '_mlre="${_mlre:-}${_mlv}_modquar='\''`eval' ''\''echo' '${'\''$_mlv'\''}'\''`'\''' '";
' 'fi;
' '_mlrv="MODULES_RUNENV_${_mlv}";
' '_mlre="${_mlre:-}${_mlv}='\''`eval' ''\''echo' '${'\''$_mlrv'\'':-}'\''`'\''' '";
' 'fi;
' 'done;
' if '[' -n '"${_mlre:-}"' '];' 'then
' '_mlre="eval' '${_mlre}";
' 'fi;
' eval '`${_mlre:-}/usr/bin/tclsh' /usr/lib/x86_64-linux-gnu/modulecmd.tcl bash '$*`;
' '_mlstatus=$?;
' if '[' -n '"${_mlIFS+x}"' '];' 'then
' 'IFS=$_mlIFS;
' 'else
' unset 'IFS;
' 'fi;
' if '[' -n '"${_mlshdbg:-}"' '];' 'then
' set '-$_mlshdbg;
' 'fi;
' unset _mlre _mlv _mlrv _mlIFS '_mlshdbg;
' return '$_mlstatus;
};
MODULES_CMD=/usr/lib/x86_64-linux-gnu/modulecmd.tcl;' export 'MODULES_CMD;
MODULESHOME=/usr/share/modules;' export 'MODULESHOME;
test' '0;'
++ MODULES_CMD=/usr/lib/x86_64-linux-gnu/modulecmd.tcl
++ export MODULES_CMD
++ MODULESHOME=/usr/share/modules
++ export MODULESHOME
++ test 0
+ '[' -n x ']'
+ IFS='
'
+ unset _mlIFS
+ unset _mlre _mlv _mlrv
+ '[' 0 = 1 ']'
+ '[' -t 1 ']'
+ export -f module
+ export -f switchml
+ ENV=/usr/share/modules/init/profile.sh
+ export ENV
+ BASH_ENV=/usr/share/modules/init/bash
+ export BASH_ENV
+ '[' 4 -ge 3 ']'
+ [[ hxBc =~ i ]]
+ [[ ! :/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: =~ :/usr/bin: ]]
++ manpath
+ manpath=/usr/share/man:/usr/local/man:/usr/local/share/man
+ [[ ! :/usr/share/man:/usr/local/man:/usr/local/share/man: =~ :/usr/share/man: ]]
+ '[' -n '' ']'
+ source /home/myusername/anaconda3/bin/activate
++ _CONDA_ROOT=/home/myusername/anaconda3
++ . /home/myusername/anaconda3/etc/profile.d/conda.sh
+++ export CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ export _CE_M=
+++ _CE_M=
+++ export _CE_CONDA=
+++ _CE_CONDA=
+++ export CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
+++ CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
+++ '[' -z '' ']'
+++ export CONDA_SHLVL=0
+++ CONDA_SHLVL=0
+++ '[' -n '' ']'
+++++ dirname /home/myusername/anaconda3/bin/conda
++++ dirname /home/myusername/anaconda3/bin
+++ PATH=/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export PATH
+++ '[' -z '' ']'
+++ PS1=
++ conda activate
++ '[' 1 -lt 1 ']'
++ local cmd=activate
++ shift
++ case "$cmd" in
++ __conda_activate activate
++ '[' -n '' ']'
++ local cmd=activate
++ shift
++ local ask_conda
++ CONDA_INTERNAL_OLDPATH=/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ __add_sys_prefix_to_path
++ '[' -n '' ']'
+++ dirname /home/myusername/anaconda3/bin/conda
++ SYSP=/home/myusername/anaconda3/bin
+++ dirname /home/myusername/anaconda3/bin
++ SYSP=/home/myusername/anaconda3
++ '[' -n '' ']'
++ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ export PATH
+++ PS1=
+++ /home/myusername/anaconda3/bin/conda shell.posix activate
++ ask_conda='PS1='\''(base) '\''
export PATH='\''/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3'\''
export CONDA_SHLVL='\''1'\''
export CONDA_DEFAULT_ENV='\''base'\''
export CONDA_PROMPT_MODIFIER='\''(base) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\'''
++ rc=0
++ PATH=/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ eval 'PS1='\''(base) '\''
export PATH='\''/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3'\''
export CONDA_SHLVL='\''1'\''
export CONDA_DEFAULT_ENV='\''base'\''
export CONDA_PROMPT_MODIFIER='\''(base) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\'''
+++ PS1='(base) '
+++ export PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export CONDA_PREFIX=/home/myusername/anaconda3
+++ CONDA_PREFIX=/home/myusername/anaconda3
+++ export CONDA_SHLVL=1
+++ CONDA_SHLVL=1
+++ export CONDA_DEFAULT_ENV=base
+++ CONDA_DEFAULT_ENV=base
+++ export 'CONDA_PROMPT_MODIFIER=(base) '
+++ CONDA_PROMPT_MODIFIER='(base) '
+++ export CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ export _CE_M=
+++ _CE_M=
+++ export _CE_CONDA=
+++ _CE_CONDA=
+++ export CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
+++ CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
++ '[' 0 '!=' 0 ']'
++ __conda_hashr
++ '[' -n '' ']'
++ '[' -n '' ']'
++ hash -r
+ conda activate myenv
+ '[' 2 -lt 1 ']'
+ local cmd=activate
+ shift
+ case "$cmd" in
+ __conda_activate activate myenv
+ '[' -n '' ']'
+ local cmd=activate
+ shift
+ local ask_conda
+ CONDA_INTERNAL_OLDPATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ __add_sys_prefix_to_path
+ '[' -n '' ']'
++ dirname /home/myusername/anaconda3/bin/conda
+ SYSP=/home/myusername/anaconda3/bin
++ dirname /home/myusername/anaconda3/bin
+ SYSP=/home/myusername/anaconda3
+ '[' -n '' ']'
+ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ export PATH
++ PS1='(base) '
++ /home/myusername/anaconda3/bin/conda shell.posix activate myenv
+ ask_conda='PS1='\''(myenv) '\''
export PATH='\''/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3/envs/myenv'\''
export CONDA_SHLVL='\''2'\''
export CONDA_DEFAULT_ENV='\''myenv'\''
export CONDA_PROMPT_MODIFIER='\''(myenv) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\''
export CONDA_PREFIX_1='\''/home/myusername/anaconda3'\''
. "/home/myusername/anaconda3/envs/myenv/etc/conda/activate.d/mpivars.activate.sh"'
+ rc=0
+ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ eval 'PS1='\''(myenv) '\''
export PATH='\''/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3/envs/myenv'\''
export CONDA_SHLVL='\''2'\''
export CONDA_DEFAULT_ENV='\''myenv'\''
export CONDA_PROMPT_MODIFIER='\''(myenv) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\''
export CONDA_PREFIX_1='\''/home/myusername/anaconda3'\''
. "/home/myusername/anaconda3/envs/myenv/etc/conda/activate.d/mpivars.activate.sh"'
++ PS1='(myenv) '
++ export PATH=/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ PATH=/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ export CONDA_PREFIX=/home/myusername/anaconda3/envs/myenv
++ CONDA_PREFIX=/home/myusername/anaconda3/envs/myenv
++ export CONDA_SHLVL=2
++ CONDA_SHLVL=2
++ export CONDA_DEFAULT_ENV=myenv
++ CONDA_DEFAULT_ENV=myenv
++ export 'CONDA_PROMPT_MODIFIER=(myenv) '
++ CONDA_PROMPT_MODIFIER='(myenv) '
++ export CONDA_EXE=/home/myusername/anaconda3/bin/conda
++ CONDA_EXE=/home/myusername/anaconda3/bin/conda
++ export _CE_M=
++ _CE_M=
++ export _CE_CONDA=
++ _CE_CONDA=
++ export CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
++ CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
++ export CONDA_PREFIX_1=/home/myusername/anaconda3
++ CONDA_PREFIX_1=/home/myusername/anaconda3
++ . /home/myusername/anaconda3/envs/myenv/etc/conda/activate.d/mpivars.activate.sh
+++ '[' '' '!=' 1 ']'
+++ export I_MPI_ROOT=/home/myusername/anaconda3/envs/myenv
+++ I_MPI_ROOT=/home/myusername/anaconda3/envs/myenv
+++ '[' -z '' ']'
+++ export CLASSPATH=/home/myusername/anaconda3/envs/myenv/lib/mpi.jar
+++ CLASSPATH=/home/myusername/anaconda3/envs/myenv/lib/mpi.jar
+++ '[' -z '' ']'
++++ manpath
+++ export MANPATH=/home/myusername/anaconda3/envs/myenv/share/man:/home/myusername/anaconda3/envs/myenv/man:/home/myusername/anaconda3/man:/usr/share/man:/usr/local/man:/usr/local/share/man
+++ MANPATH=/home/myusername/anaconda3/envs/myenv/share/man:/home/myusername/anaconda3/envs/myenv/man:/home/myusername/anaconda3/man:/usr/share/man:/usr/local/man:/usr/local/share/man
+++ '[' -z '' ']'
+++ i_mpi_ofi_library_internal=1
+++ case "$i_mpi_ofi_library_internal" in
+++ export PATH=/home/myusername/anaconda3/envs/myenv/bin/libfabric:/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ PATH=/home/myusername/anaconda3/envs/myenv/bin/libfabric:/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export LD_LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric:/usr/lib/x86_64-linux-gnu
+++ LD_LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric:/usr/lib/x86_64-linux-gnu
+++ '[' -z '' ']'
+++ export LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric
+++ LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric
+++ export FI_PROVIDER_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric/prov:/usr/lib64/libfabric
+++ FI_PROVIDER_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric/prov:/usr/lib64/libfabric
+ '[' 0 '!=' 0 ']'
+ __conda_hashr
+ '[' -n '' ']'
+ '[' -n '' ']'
+ hash -r
+ programm_name --text 'test --model_name' tts_models/en/ljspeech/tacotron2-DCA --vocoder_name vocoder_models/en/ljspeech/mulitband-melgan --out_path /home/myusername/projects/tts/soundoutput/
2022-01-05 14:51:05.187922: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
usage: programm_name [-h] [--list_models [LIST_MODELS]] [--text TEXT]
[--model_name MODEL_NAME] [--vocoder_name VOCODER_NAME]
[--config_path CONFIG_PATH] [--model_path MODEL_PATH]
[--out_path OUT_PATH] [--use_cuda USE_CUDA]
[--vocoder_path VOCODER_PATH]
[--vocoder_config_path VOCODER_CONFIG_PATH]
[--speakers_json SPEAKERS_JSON] [--speaker_idx SPEAKER_IDX]
[--gst_style GST_STYLE] [--save_spectogram SAVE_SPECTOGRAM]
programm_name: error: unrecognized arguments: tts_models/en/ljspeech/tacotron2-DCA
2
正如其他地方指出的那样,基本问题是 QProcess
会遇到一些麻烦,以 避免 经历任何 shell。话虽如此,您应该能够通过显式调用 shell 来实现您想要的。
假设您在 bash
下通常 运行 的命令是 ls -l | grep '\.'
...
QProcess process;
QString shell_command = "ls -l | grep '\.'";
process.start("bash", { "-c", shell_command });
现在您可以像阅读任何其他 QProcess
.
一样阅读命令的标准 output/error 流
[请注意,这或多或少是 previous post 的 Qt
版本。]
我有一个非常复杂的命令列表,它加载一个虚拟环境并对给定的文本执行多个命令。它与 system() 一起工作正常,但与 QProcess::execute 一起失败。这太可惜了,因为我想使用
QProcess process;
process.readAllStandardOutput();
在不弄乱管道的情况下读取输出。有没有办法给进程一个“愚蠢的”命令字符串,它像 system() 一样执行?
command = "bash -c \"" + prepend + "\\"" + text + "\\"" + append + "\"";
std::cout << command.toStdString().c_str() << std::endl;
//qDebug() << QProcess::execute(command.toStdString().c_str());
system(command.toStdString().c_str());
QT好像把参数弄乱了:
usage: program_name [-h] [--list_models [LIST_MODELS]] [--text TEXT]
Edit1:带 popen 的解决方案(丑陋但有效):
FILE *fp;
char path[1035];
fp = popen(command.toStdString().c_str(), "r");
if (fp == NULL)
{
printf("Failed to run command\n" );
exit(1);
}
while (fgets(path, sizeof(path), fp) != NULL)
{
QString line = path;
if(line.contains("Keyword"))
{
qDebug() << "=============================";
qDebug() << line;
qDebug() << "=============================";
}
}
pclose(fp);
Edit2:请求调试输出
programm_name started
bash -x -c "source /home/myusername/anaconda3/bin/activate; conda activate myenv; programm_name --text \"test\" --model_name tts_models/en/ljspeech/tacotron2-DCA --vocoder_name vocoder_models/en/ljspeech/mulitband-melgan --out_path /home/myusername/projects/tts/soundoutput/"
+ unset _mlre _mlIFS _mlshdbg
+ '[' 0 = 1 ']'
+ '[' -n x ']'
+ _mlIFS='
'
+ IFS=' '
+ '[' -n '' ']'
++ /usr/bin/tclsh /usr/lib/x86_64-linux-gnu/modulecmd.tcl bash autoinit
+ eval 'module()' '{
' unset _mlre _mlIFS '_mlshdbg;
' if '[' '"${MODULES_SILENT_SHELL_DEBUG:-0}"' = ''\''1'\''' '];' 'then
' case '"$-"' 'in
' '*v*x*)' set '+vx;' '_mlshdbg='\''vx'\''' ';;
' '*v*)' set '+v;' '_mlshdbg='\''v'\''' ';;
' '*x*)' set '+x;' '_mlshdbg='\''x'\''' ';;
' '*)' '_mlshdbg='\'''\''' ';;
' 'esac;
' 'fi;
' if '[' -n '"${IFS+x}"' '];' 'then
' '_mlIFS=$IFS;
' 'fi;
' 'IFS='\''' ''\'';
' for _mlv in '${MODULES_RUN_QUARANTINE:-};' 'do
' if '[' '"${_mlv}"' = '"${_mlv##*[!A-Za-z0-9_]}"' -a '"${_mlv}"' = '"${_mlv#[0-9]}"' '];' 'then
' if '[' -n '"`eval' ''\''echo' '${'\''$_mlv'\''+x}'\''`"' '];' 'then
' '_mlre="${_mlre:-}${_mlv}_modquar='\''`eval' ''\''echo' '${'\''$_mlv'\''}'\''`'\''' '";
' 'fi;
' '_mlrv="MODULES_RUNENV_${_mlv}";
' '_mlre="${_mlre:-}${_mlv}='\''`eval' ''\''echo' '${'\''$_mlrv'\'':-}'\''`'\''' '";
' 'fi;
' 'done;
' if '[' -n '"${_mlre:-}"' '];' 'then
' '_mlre="eval' '${_mlre}";
' 'fi;
' eval '`${_mlre:-}/usr/bin/tclsh' /usr/lib/x86_64-linux-gnu/modulecmd.tcl bash '$*`;
' '_mlstatus=$?;
' if '[' -n '"${_mlIFS+x}"' '];' 'then
' 'IFS=$_mlIFS;
' 'else
' unset 'IFS;
' 'fi;
' if '[' -n '"${_mlshdbg:-}"' '];' 'then
' set '-$_mlshdbg;
' 'fi;
' unset _mlre _mlv _mlrv _mlIFS '_mlshdbg;
' return '$_mlstatus;
};
MODULES_CMD=/usr/lib/x86_64-linux-gnu/modulecmd.tcl;' export 'MODULES_CMD;
MODULESHOME=/usr/share/modules;' export 'MODULESHOME;
test' '0;'
++ MODULES_CMD=/usr/lib/x86_64-linux-gnu/modulecmd.tcl
++ export MODULES_CMD
++ MODULESHOME=/usr/share/modules
++ export MODULESHOME
++ test 0
+ '[' -n x ']'
+ IFS='
'
+ unset _mlIFS
+ unset _mlre _mlv _mlrv
+ '[' 0 = 1 ']'
+ '[' -t 1 ']'
+ export -f module
+ export -f switchml
+ ENV=/usr/share/modules/init/profile.sh
+ export ENV
+ BASH_ENV=/usr/share/modules/init/bash
+ export BASH_ENV
+ '[' 4 -ge 3 ']'
+ [[ hxBc =~ i ]]
+ [[ ! :/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: =~ :/usr/bin: ]]
++ manpath
+ manpath=/usr/share/man:/usr/local/man:/usr/local/share/man
+ [[ ! :/usr/share/man:/usr/local/man:/usr/local/share/man: =~ :/usr/share/man: ]]
+ '[' -n '' ']'
+ source /home/myusername/anaconda3/bin/activate
++ _CONDA_ROOT=/home/myusername/anaconda3
++ . /home/myusername/anaconda3/etc/profile.d/conda.sh
+++ export CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ export _CE_M=
+++ _CE_M=
+++ export _CE_CONDA=
+++ _CE_CONDA=
+++ export CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
+++ CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
+++ '[' -z '' ']'
+++ export CONDA_SHLVL=0
+++ CONDA_SHLVL=0
+++ '[' -n '' ']'
+++++ dirname /home/myusername/anaconda3/bin/conda
++++ dirname /home/myusername/anaconda3/bin
+++ PATH=/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export PATH
+++ '[' -z '' ']'
+++ PS1=
++ conda activate
++ '[' 1 -lt 1 ']'
++ local cmd=activate
++ shift
++ case "$cmd" in
++ __conda_activate activate
++ '[' -n '' ']'
++ local cmd=activate
++ shift
++ local ask_conda
++ CONDA_INTERNAL_OLDPATH=/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ __add_sys_prefix_to_path
++ '[' -n '' ']'
+++ dirname /home/myusername/anaconda3/bin/conda
++ SYSP=/home/myusername/anaconda3/bin
+++ dirname /home/myusername/anaconda3/bin
++ SYSP=/home/myusername/anaconda3
++ '[' -n '' ']'
++ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ export PATH
+++ PS1=
+++ /home/myusername/anaconda3/bin/conda shell.posix activate
++ ask_conda='PS1='\''(base) '\''
export PATH='\''/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3'\''
export CONDA_SHLVL='\''1'\''
export CONDA_DEFAULT_ENV='\''base'\''
export CONDA_PROMPT_MODIFIER='\''(base) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\'''
++ rc=0
++ PATH=/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ eval 'PS1='\''(base) '\''
export PATH='\''/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3'\''
export CONDA_SHLVL='\''1'\''
export CONDA_DEFAULT_ENV='\''base'\''
export CONDA_PROMPT_MODIFIER='\''(base) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\'''
+++ PS1='(base) '
+++ export PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export CONDA_PREFIX=/home/myusername/anaconda3
+++ CONDA_PREFIX=/home/myusername/anaconda3
+++ export CONDA_SHLVL=1
+++ CONDA_SHLVL=1
+++ export CONDA_DEFAULT_ENV=base
+++ CONDA_DEFAULT_ENV=base
+++ export 'CONDA_PROMPT_MODIFIER=(base) '
+++ CONDA_PROMPT_MODIFIER='(base) '
+++ export CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ CONDA_EXE=/home/myusername/anaconda3/bin/conda
+++ export _CE_M=
+++ _CE_M=
+++ export _CE_CONDA=
+++ _CE_CONDA=
+++ export CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
+++ CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
++ '[' 0 '!=' 0 ']'
++ __conda_hashr
++ '[' -n '' ']'
++ '[' -n '' ']'
++ hash -r
+ conda activate myenv
+ '[' 2 -lt 1 ']'
+ local cmd=activate
+ shift
+ case "$cmd" in
+ __conda_activate activate myenv
+ '[' -n '' ']'
+ local cmd=activate
+ shift
+ local ask_conda
+ CONDA_INTERNAL_OLDPATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ __add_sys_prefix_to_path
+ '[' -n '' ']'
++ dirname /home/myusername/anaconda3/bin/conda
+ SYSP=/home/myusername/anaconda3/bin
++ dirname /home/myusername/anaconda3/bin
+ SYSP=/home/myusername/anaconda3
+ '[' -n '' ']'
+ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ export PATH
++ PS1='(base) '
++ /home/myusername/anaconda3/bin/conda shell.posix activate myenv
+ ask_conda='PS1='\''(myenv) '\''
export PATH='\''/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3/envs/myenv'\''
export CONDA_SHLVL='\''2'\''
export CONDA_DEFAULT_ENV='\''myenv'\''
export CONDA_PROMPT_MODIFIER='\''(myenv) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\''
export CONDA_PREFIX_1='\''/home/myusername/anaconda3'\''
. "/home/myusername/anaconda3/envs/myenv/etc/conda/activate.d/mpivars.activate.sh"'
+ rc=0
+ PATH=/home/myusername/anaconda3/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ eval 'PS1='\''(myenv) '\''
export PATH='\''/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'\''
export CONDA_PREFIX='\''/home/myusername/anaconda3/envs/myenv'\''
export CONDA_SHLVL='\''2'\''
export CONDA_DEFAULT_ENV='\''myenv'\''
export CONDA_PROMPT_MODIFIER='\''(myenv) '\''
export CONDA_EXE='\''/home/myusername/anaconda3/bin/conda'\''
export _CE_M='\'''\''
export _CE_CONDA='\'''\''
export CONDA_PYTHON_EXE='\''/home/myusername/anaconda3/bin/python'\''
export CONDA_PREFIX_1='\''/home/myusername/anaconda3'\''
. "/home/myusername/anaconda3/envs/myenv/etc/conda/activate.d/mpivars.activate.sh"'
++ PS1='(myenv) '
++ export PATH=/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ PATH=/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
++ export CONDA_PREFIX=/home/myusername/anaconda3/envs/myenv
++ CONDA_PREFIX=/home/myusername/anaconda3/envs/myenv
++ export CONDA_SHLVL=2
++ CONDA_SHLVL=2
++ export CONDA_DEFAULT_ENV=myenv
++ CONDA_DEFAULT_ENV=myenv
++ export 'CONDA_PROMPT_MODIFIER=(myenv) '
++ CONDA_PROMPT_MODIFIER='(myenv) '
++ export CONDA_EXE=/home/myusername/anaconda3/bin/conda
++ CONDA_EXE=/home/myusername/anaconda3/bin/conda
++ export _CE_M=
++ _CE_M=
++ export _CE_CONDA=
++ _CE_CONDA=
++ export CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
++ CONDA_PYTHON_EXE=/home/myusername/anaconda3/bin/python
++ export CONDA_PREFIX_1=/home/myusername/anaconda3
++ CONDA_PREFIX_1=/home/myusername/anaconda3
++ . /home/myusername/anaconda3/envs/myenv/etc/conda/activate.d/mpivars.activate.sh
+++ '[' '' '!=' 1 ']'
+++ export I_MPI_ROOT=/home/myusername/anaconda3/envs/myenv
+++ I_MPI_ROOT=/home/myusername/anaconda3/envs/myenv
+++ '[' -z '' ']'
+++ export CLASSPATH=/home/myusername/anaconda3/envs/myenv/lib/mpi.jar
+++ CLASSPATH=/home/myusername/anaconda3/envs/myenv/lib/mpi.jar
+++ '[' -z '' ']'
++++ manpath
+++ export MANPATH=/home/myusername/anaconda3/envs/myenv/share/man:/home/myusername/anaconda3/envs/myenv/man:/home/myusername/anaconda3/man:/usr/share/man:/usr/local/man:/usr/local/share/man
+++ MANPATH=/home/myusername/anaconda3/envs/myenv/share/man:/home/myusername/anaconda3/envs/myenv/man:/home/myusername/anaconda3/man:/usr/share/man:/usr/local/man:/usr/local/share/man
+++ '[' -z '' ']'
+++ i_mpi_ofi_library_internal=1
+++ case "$i_mpi_ofi_library_internal" in
+++ export PATH=/home/myusername/anaconda3/envs/myenv/bin/libfabric:/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ PATH=/home/myusername/anaconda3/envs/myenv/bin/libfabric:/home/myusername/anaconda3/envs/myenv/bin:/home/myusername/anaconda3/condabin:/usr/lib/qt5/bin:/usr/bin:/home/myusername/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+++ export LD_LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric:/usr/lib/x86_64-linux-gnu
+++ LD_LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric:/usr/lib/x86_64-linux-gnu
+++ '[' -z '' ']'
+++ export LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric
+++ LIBRARY_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric
+++ export FI_PROVIDER_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric/prov:/usr/lib64/libfabric
+++ FI_PROVIDER_PATH=/home/myusername/anaconda3/envs/myenv/lib/libfabric/prov:/usr/lib64/libfabric
+ '[' 0 '!=' 0 ']'
+ __conda_hashr
+ '[' -n '' ']'
+ '[' -n '' ']'
+ hash -r
+ programm_name --text 'test --model_name' tts_models/en/ljspeech/tacotron2-DCA --vocoder_name vocoder_models/en/ljspeech/mulitband-melgan --out_path /home/myusername/projects/tts/soundoutput/
2022-01-05 14:51:05.187922: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
usage: programm_name [-h] [--list_models [LIST_MODELS]] [--text TEXT]
[--model_name MODEL_NAME] [--vocoder_name VOCODER_NAME]
[--config_path CONFIG_PATH] [--model_path MODEL_PATH]
[--out_path OUT_PATH] [--use_cuda USE_CUDA]
[--vocoder_path VOCODER_PATH]
[--vocoder_config_path VOCODER_CONFIG_PATH]
[--speakers_json SPEAKERS_JSON] [--speaker_idx SPEAKER_IDX]
[--gst_style GST_STYLE] [--save_spectogram SAVE_SPECTOGRAM]
programm_name: error: unrecognized arguments: tts_models/en/ljspeech/tacotron2-DCA
2
正如其他地方指出的那样,基本问题是 QProcess
会遇到一些麻烦,以 避免 经历任何 shell。话虽如此,您应该能够通过显式调用 shell 来实现您想要的。
假设您在 bash
下通常 运行 的命令是 ls -l | grep '\.'
...
QProcess process;
QString shell_command = "ls -l | grep '\.'";
process.start("bash", { "-c", shell_command });
现在您可以像阅读任何其他 QProcess
.
[请注意,这或多或少是 previous post 的 Qt
版本。]