Как импортировать файл Python в скрипт Python более одного раза - PullRequest
2 голосов
/ 10 ноября 2008

Можно ли импортировать файл Python более одного раза в сценарии Python, потому что я запускаю цикл обратно в файл драйвера в функции с помощью команды import, но он работает только один раз? спасибо

edit: Решился, спасибо

Ответы [ 4 ]

7 голосов
/ 10 ноября 2008

Скорее всего, вам не следует использовать импорт для того, что вы пытаетесь сделать.

Без дополнительной информации я могу только догадываться, но вы должны переместить код из модуля, который вы импортируете, с верхнего уровня в функцию, выполнить импорт один раз, а затем просто вызвать функцию из вашего цикла.

4 голосов
/ 10 ноября 2008

Самый простой ответ - поместить код, который вы пытаетесь запустить, в такую ​​функцию, как эта

(внутри вашего модуля, который вы импортируете сейчас):

def main():
    # All the code that currently does work goes in here 
    # rather than just in the module

(Модуль, который выполняет импорт)

import your_module #used to do the work

your_module.main() # now does the work (and you can call it multiple times)
# some other code
your_module.main() # do the work again
1 голос
/ 10 ноября 2008

Хотя ответ Тома Лея является правильным, можно импортировать модуль более одного раза, используя встроенную перезагрузку.

module.py:
print "imported!"

>>> import module
imported!
>>> reload(module)
imported!
<module 'module' from 'module.pyc'>

Обратите внимание, что перезагрузка возвращает модуль, что позволяет вам при необходимости перепривязать его.

1 голос
/ 10 ноября 2008

Оператор импорта - по определению - импортирует только один раз.

Вы можете, если хотите, попробовать использовать execfile() (или eval()), чтобы выполнить отдельный файл более одного раза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...