Python молча терпит неудачу при перемещении кода в другой файл - PullRequest
0 голосов
/ 30 июня 2018

Я довольно новичок в python, и у меня есть странная проблема, которую я не могу понять самостоятельно, уверен, что это глупо, но я могу видеть, что это такое, и никогда раньше не сталкивался, даже имея несколько проводов скрипты Python с большим количеством подфайлов

Для записи я кодирую и запускаю свой скрипт с помощью Spyder (версия Python 3.6) в Windows, но я устанавливаю #! / Usr / lib / python2.7 / в начале каждого файла

Мой основной сценарий - большой файл, и я хотел реорганизовать его, экспортировав код в некоторые другие файлы

Главное так:

if __name__ == "__main__":
    configuration = Conf.loadConf(os.path.join(scriptDir,confFile))
    print(configuration)    
    loadFavs(configuration,bioses,setDict)

Когда loadFavs находится в основном скрипте, все работает нормально

Как только я переместил его в файл fav.py на том же уровне, что и мой основной скрипт, добавив import fav и изменив fav.loadFavs (configuration, bioses, setDict), он перестал работать, и Spyder просто ничего не сказал без причины:

In [1]: runfile('C:/DevZone/workspaceFX/scripts4recalbox/BestArcade/fav.py', wdir='C:/DevZone/workspaceFX/scripts4recalbox/BestArcade')

In [2] runfile('C:/DevZone/workspaceFX/scripts4recalbox/BestArcade/fav.py', wdir='C:/DevZone/workspaceFX/scripts4recalbox/BestArcade')

Первая строка configuration = Conf.loadConf(os.path.join(scriptDir,confFile)) должна печатать вещи на экране, и даже не показывать

Как только я вернул код в основной скрипт, мой код снова работает

Это происходит с несколькими различными частями скрипта, которые я пытался поместить в разные файлы

Я в недоумении, вот что я проверил:

  • в начале каждого файла

    #! / USR / Lib / python2.7 /

    # - - кодировка: utf-8 - -

  • всегда заканчивать скрипт пустой строкой

  • создание каждого файла внутри Spyder, а не за его пределами

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

def parseSetFile(setFile, setDict) :
    file = open(setFile,'r')
    genre = None
    # Parse iniFile in iniFile dir    
    for line in file.readlines() :
        line = line.rstrip('\n\r ')
        if (line.startswith('[') and not line == '[FOLDER_SETTINGS]' and not line == '[ROOT_FOLDER]') :            
            genre = line
            if genre not in setDict :                
                setDict[genre] = []
        else :
            if (genre is not None and not line == '' ) :
                setDict[genre].append(line)

def loadFavs(configuration, bioses, setDict) :
    print("Load favs small set")
    parseSetFile(os.path.join(configuration['scriptDir'],dataDir,smallSetFile),setDict)
    print("Load favs big set")
    parseSetFile(os.path.join(configuration['scriptDir'],dataDir,bigSetFile),setDict)

    print('Nb Genre : %s' %len(setDict))    
    sumGames = 0
    for key in setDict.keys() :
        # print(key)
        # print(setDict[key])
        sumGames = sumGames + len(setDict[key])

    print('Nb Games : %s' %sumGames)
    print('Nb Bios : %s' %len(bioses))

1 Ответ

0 голосов
/ 30 июня 2018

Хорошо, я действительно очень глуп:

In [1]: runfile('C:/DevZone/workspaceFX/scripts4recalbox/BestArcade/fav.py', wdir='C:/DevZone/workspaceFX/scripts4recalbox/BestArcade')

Я запускаю свой индекс fav.py, а не основной, и, конечно, он не имеет никакого основного ......

...