Что такое синтаксическая ошибка в строке «def» в скрипте python?

#python-3.x

Вопрос:

Я пытаюсь запустить следующий скрипт python:

 #!/usr/bin/env python

#Author Jared Adolf-Bryfogle



#Python Imports
import os
import sys
from pathlib import Path
from typing import Union
#Append Python Path
p = os.path.split(os.path.abspath(__file__))[0] "/src"
sys.path.append(p) #Allows all modules to use all other modules, without needing to update pythonpath

#Project Imports
from pic2.modules.chains.ProposedIgChain import ProposedIgChain
from pic2.modules.chains.IgChainSet import IgChainSet
from pic2.modules.chains.IgChainFactory import IgChainFactory
from pic2.modules.chains.AbChainFactory import AbChainFactory

from pic2.tools.fasta import *


class IgClassifyFASTA:
    """
    Identify CDRs from a Fasta File
    """
    def __init__(self, fasta_path: Union[Path, str]):
        self.fasta_path = str(fasta_path)
        self.outdir = os.getcwd()
        self.outname = "classified"
        self.fasta_paths = split_fasta_from_fasta(os.path.abspath(self.fasta_path), "user_fasta_split_" self.outname, self.outdir)


    def __exit__(self):
        for path in self.fasta_paths:
            if os.path.exists(path):
                os.remove(path)

    def set_output_path(self, outdir: Union[Path, str]):
        self.outdir = str(outdir)

    def set_output_name(self, outname: Union[Path, str]):
        self.outname = str(outname)

    
 

Моя версия python-3.8, а pic2-это conda env. Я получаю следующую ошибку:

 File "IgClassifyFASTA.py", line 29
    def __init__(self, fasta_path:Union[Path, str]):
SyntaxError: invalid syntax
 

Я не могу понять, что не так с этой строкой. Не могли бы вы любезно намекнуть мне, в чем дело? Я буду признателен за любую помощь.

С наилучшими пожеланиями!

Комментарии:

1. Единственный способ, которым я могу воспроизвести вашу ошибку, — это если я попытаюсь запустить ее в интерпретаторе Python 2.7, который не поддерживает подсказки типа, которые вы используете.

2. Можете ли вы разместить print(sys.version) где-нибудь перед вашим class определением и опубликовать результат?

3. @Axe319 print(sys.версия) не выдает никаких выходных данных при размещении перед определением класса. Скрипт выдал то же сообщение об ошибке, что и раньше.

4. Ты уверен? На нем должно быть напечатано что-то вроде 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] . По крайней мере, он что-то печатает. Если это не так, вы, вероятно, запускаете не тот сценарий, который, по вашему мнению, вы запускаете.

5. Я уверен, что выполняю точный сценарий.