Неустранимая ошибка Python: initfsencoding: невозможно получить файл кодировки локали "/cm/shared/apps/anaconda2/4.5.12/lib/python2.7/encodings/__init__.py" - PullRequest
1 голос
/ 26 марта 2019

Я пишу сценарий подачи работы для менеджера рабочей нагрузки SLURM.Сначала я загрузил модуль anaconda2 / 4.5.12 (включая python 2.7).Затем я создал среду conda с версией Python3.7.Я пытаюсь отправить скрипт с помощью команды "sbatsh", но я получаю эту ошибку:

Fatal Python error: initfsencoding: Unable to get the locale encoding
File "/cm/shared/apps/anaconda2/4.5.12/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
                        ^
SyntaxError: invalid syntax
Current thread 0x00002aaaaaaffc00 (most recent call first):
/cm/local/apps/slurm/var/spool/job04287/slurm_script: line 19: 40032 
Aborted                 python3 taxo.TXT

Это мой файл скрипта:

#!/bin/bash
#
#SBATCH --job-name=taxjob
#SBATCH --nodes=4

#SBATCH --tasks-per-node=3
#SBATCH --time=0-03:00:00
#SBATCH --partition=shortq 
#SBATCH --mem=24GB 
#SBATCH --output=/home/s.e/tax/Ftest-%j.out
#SBATCH --error=/home/s.e/tax/Ftest-%j.err
module load anaconda2/4.5.12
source activate py37
python3  taxo.TXT

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

После многих попыток решением было добавить инструкцию "unset PYTHONPATH" в мой файл сценария следующим образом:

....    
module load anaconda2/4.5.12
source activate py37
unset PYTHONPATH
python3  taxo.TXT
0 голосов
/ 26 марта 2019

Проблема в том, что "/cm/shared/apps/anaconda2/4.5.12/lib/python2.7/encodings/__init__.py" если файл python2, как вы можете видеть по пути, но он пытается интерпретироваться как файл python3. Вы можете исправить эту проблему и запустить ее с помощью python2.7 или отредактировать файл encodings/__init__.py, чтобы сделать его интерпретируемым с python3

Чтобы понять проблему, вы можете попробовать запустить эту строку в python2 и python3 вручную:

#Python3
>>> raise Exception,\
  File "<stdin>", line 1
    raise Exception,\
                   ^
SyntaxError: invalid syntax

но

#Python2.7
>>> raise Exception,\
...

Аналог Python3 для raise Exception,\ "str" равен raise Exception("str"). Таким образом, вы можете изменить 123-ую строку файла, но это не очень хорошая идея, потому что могут возникнуть другие проблемы, поэтому лучше что-то исправить в конфигах / выполнении команд anaconda

...