Meu laptop roda o Ubuntu 16.04 LTS. No trabalho, eu uso o ssh para trabalhar em um servidor rodando a versão 7.4.1708 do CentOS Linux.
Esse problema só acontece quando tento usar o Snakemake. Quando eu digito qualquer comando relacionado ao snakemake, recebo o erro abaixo.
Este erro ocorre apenas quando se utiliza o Ubuntu. Meu laptop também tem o Windows 10, do qual eu posso usar ssh usando o puTTY. Nesse caso, posso executar o Snakemake sem problemas.
Não tem nada a ver com o programa de terminal específico - testei o Terminal, Tilda e Xterm padrão.
Não é um problema do lado do servidor. Qualquer um dos meus colegas de trabalho pode fazer login na minha conta no servidor com seus computadores e executar o Snakemake sem problemas.
Aqui está o erro:
#2018-04-06 13:51:33,976 | ERROR | logging.py : UnicodeDecodeError in line 54 of /data2/patrick/Patients/USZ/Snakefile:
'ascii' codec can't decode byte 0xe2 in position 3378: ordinal not in range(128)
File "/data2/patrick/Patients/USZ/Snakefile", line 54, in <module>
File "/data2/patrick/Patients/USZ/pipeline/scripts/load_config.py", line 17, in load_config
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/__init__.py", line 72, in load
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/constructor.py", line 35, in get_single_data
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 36, in get_single_node
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 55, in compose_document
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 84, in compose_node
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 133, in compose_mapping_node
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 84, in compose_node
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 133, in compose_mapping_node
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 84, in compose_node
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/composer.py", line 127, in compose_mapping_node
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/parser.py", line 98, in check_event
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/parser.py", line 428, in parse_block_mapping_key
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/scanner.py", line 116, in check_token
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/scanner.py", line 156, in fetch_more_tokens
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/scanner.py", line 778, in scan_to_next_token
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/scanner.py", line 1429, in scan_line_break
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/reader.py", line 96, in prefix
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/reader.py", line 153, in update
File "/home/wid/miniconda3/lib/python3.6/site-packages/yaml/reader.py", line 178, in update_raw
File "/home/wid/miniconda3/lib/python3.6/encodings/ascii.py", line 26, in decode
A primeira linha do erro faz referência a uma linha específica no meu Snakefile. Aqui está:
54 config = load_config(config_file_path)
Essa linha refere-se a outro script (load_config), no qual há um erro na linha 17. Essa linha chama outro script python, no qual há um erro em outra linha ... e assim por diante na mensagem de erro. A linha final (a origem do problema?) Refere-se à linha 26 de ascii.py. Aqui estão as linhas relevantes:
24 class IncrementalDecoder(codecs.IncrementalDecoder):
25 def decode(self, input, final=False):
26 return codecs.ascii_decode(input, self.errors)[0]
Este é o caso quando se usa a instalação do miniconda python, bem como usando o python base.
Mais uma vez, quero enfatizar que isso só acontece quando eu ssh do Ubuntu.