2016-12-14 2 views
0

В основном я делаю игру Tower Defense, и у меня есть файл python с именем enemy.py, который имеет круглый внутри, и у меня есть файл main.py, который является концом раунда экран. Я хочу, чтобы main.py запускал enemy.py после завершения каждого раунда, но во второй раз дает мне ошибку. Я использую функцию импорта, чтобы открыть другие файлы. Кроме того, кто-то может помочь мне сделать так, чтобы ошибка была не такой большой. Я так смущен!Запуск файла python из файла несколько раз

Traceback (most recent call last): 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 62, in <module> 
    createMenu() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 9, in  createMenu 
    newRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 23, in  newRound 
    cancelLoop() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 38, in  cancelLoop 
    startRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 41, in  startRound 
    import enemy.py 
    File "H:\ICT\A level\Computing\Tower Defense Code\enemy.py", line 107, in  <module> 
    enemy.draw(screen) 
    File "H:\ICT\A level\Computing\Tower Defense Code\enemy.py", line 35, in  draw 
    life(self) 
    File "H:\ICT\A level\Computing\Tower Defense Code\enemy.py", line 55, in  life 
    import main.py 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 62, in  <module> 
    createMenu() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 9, in  createMenu 
    newRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 23, in  newRound 
    cancelLoop() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 38, in  cancelLoop 
    startRound() 
    File "H:\ICT\A level\Computing\Tower Defense Code\main.py", line 41, in startRound 
    import enemy.py 
ImportError: No module named 'enemy.py'; 'enemy' is not a package 

+1

Пожалуйста, покажите минимальный рабочий/неисправный образец код - похоже, что это было бы полезно также, глядя, как импорт питона только на первый раз ... – Dilettant

+1

Вам нужно только импортировать его один раз. Вы вводите 'import enemy' не' import enemy.py' –

ответ

4

Сначала отбросьте .py суффикс файла. Синтаксис просто:

import enemy 

Это будет работать весь код в enemy.py (предполагается, что enemy.py находится в пути, известного Python).

Если вы хотите повторить этот процесс, команда использовать это:

reload(enemy) 

Это не лучший способ, чтобы использовать модуль, хотя. Вы лучше создавать функции внутри врага и называя его прямо:

import enemy 
enemy.enemy() 
+0

Спасибо, что это так полезно –

Смежные вопросы