2017-02-15 16 views
-3

Я сделал мой код проще здесь, но я думаю, что я также сузил мой вопрос. имя dosent equal main, когда он управляется mcedit как фильтр, так что вы должны сравнивать имя с чем-то другим, кроме основного, которое его вызывало другой программой, делая main PlaceBlock вместо этого все еще не работал?if __name__ == "__main__" dosent do anything

from multiprocessing import Process 
from pymclevel import alphaMaterials 

displayName = "PlaceBlock" 

def perform(level, box, options): 

    x = box.minx 
    z = box.minz 

    def block(height): 
     level.setBlockAt(x, height, z, 1) 

    print(__name__) 
    if __name__ == "__main__": 
     print('Processing') 
     p1 = Process(target=block, args=(1,)) 
     p2 = Process(target=block, args=(2,)) 

     p1.start() 
     p2.start() 

    p1.join() 
    p2.join() 

Кроме того, чтобы ответить на вопрос в комментариях, этот фильтр для программы Minecraft под названием mcedit редактировать миры, фильтры только программы, редактировать миры. Таким образом, эта программа dosent фактически делает что-либо, если у вас нет программы

+2

Как вы управляете своим скриптом? –

+2

Вопросы, связанные с кодом, должны включать ** минимальный **, полный проверяемый пример. «Минимальный» в этом контексте означает, что он должен быть сокращен до наименьшего кода, который позволит другим увидеть вашу проблему самостоятельно, с таким количеством возможных осложняющих факторов (например, используя «многопроцессорность», только если проблема не может быть воспроизводится без него). См. Http://stackoverflow.com/help/mcve –

+0

Это может быть актуально: http://stackoverflow.com/questions/419163/what-does-if-name-main-do – ToxicTeacakes

ответ

0

После того, как много беспорядков превратилось в то, что в процессах он не запускал нужный файл, он запускал основную программу, поэтому она открыла вторую версию программы, поэтому я ввел в файл исполняемый файл, чтобы открыть python вместо программы, и он отлично работает!