Как импортировать функцию из файла в блокнот Юпитера? - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть файл Python, который из этой книги посвящен глубокому обучению, и перейдите , который выглядит, как показано ниже.Если я выполняю python.exe bot_v_bot.py, программа запускается.

Если я запускаю bot_v_bot.py из eclipse / pydev, тогда он работает.

Файл .ipnb находится в той же папкекак bot_v_bot.py.

Если я вставлю:

from bot_v_bot import main
main()

в ячейку в файле .ipnb и запустите его, он скажет:

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-4-248b35949c67> in <module>()
----> 1 from bot_v_bot import main
      2 main()

ModuleNotFoundError: No module named 'bot_v_bot'

edit: код ниже работал.eclipse имеет src на пути к python.

import sys
sys.path.append('src')
from bot_v_bot import main
main()

file: bot_v_bot.py:

from __future__ import print_function
# tag::bot_vs_bot[]
from dlgo import agent
from dlgo import goboard_slow
from dlgo import gotypes
from dlgo.utils import print_board, print_move
import time


def main():
    board_size = 9
    game = goboard_slow.GameState.new_game(board_size)
    bots = {
        gotypes.Player.black: agent.naive.RandomBot(),
        gotypes.Player.white: agent.naive.RandomBot(),
    }
    while not game.is_over():
        time.sleep(0.3)  # <1>

        print(chr(27) + "[2J")  # <2>
        print_board(game.board)
        bot_move = bots[game.next_player].select_move(game)
        print_move(game.next_player, bot_move)
        game = game.apply_move(bot_move)


if __name__ == '__main__':
    main()

# <1> We set a sleep timer to 0.3 seconds so that bot moves aren't printed too fast to observe
# <2> Before each move we clear the screen. This way the board is always printed to the same position on the command line.
# end::bot_vs_bot[]

1 Ответ

0 голосов
/ 03 февраля 2019

Пожалуйста, проверьте и убедитесь, что ваш модуль присутствует по любому из системных путей (sys.path).

Значения sys.path можно получить с помощью следующего кода.

import sys
sys.path

Если путь к модулю не добавлен в sys.path, мы можем добавить путь в sys.path как

sys.path.append('C:\\') # sample path C:\\
...