2016-03-20 6 views
0

Я пытаюсь реализовать Sudoku Solver в питона, используя dlxsudoku пакет, доступный из https://pypi.python.org/pypi/dlxsudokuКак использовать пакет dlxsudoku в python?

При попытке реализовать документированный код, доступный на сайте при условии, т.е.

from dlxsudoku import Sudoku 

sudoku_string_1 = "030467050920010006067300148301006027400850600090200400005624001203000504040030702" 
sudoku_string_2 = "# Example Sudoku\n" + \ 
       "*72****6*\n" + \ 
       "***72*9*4\n" + \ 
       "*9*1****2\n" + \ 
       "*******4*\n" + \ 
       "82*4*71**\n" + \ 
       "**9*6*8**\n" + \ 
       "***9**6**\n" + \ 
       "**3*72*9*\n" + \ 
       "*6*843*7*" 

s1 = Sudoku(sudoku_string_1) 
s1.solve() 
print(s1.to_oneliner()) 

s2 = Sudoku(sudoku_string_2) 
s2.solve() 
print(s2) 

я получаю следующее сообщение об ошибке

Traceback (most recent call last): 
    File "D:\sandbox.py", line 1, in <module> 
    from dlxsudoku import Sudoku 
ImportError: cannot import name Sudoku 

Если изменить 'судоку' в 'судоку' в строке 1, т.е.

from dlxsudoku import sudoku 

Изменения ошибок в

Traceback (most recent call last): 
    File "D:\sandbox.py", line 15, in <module> 
    s1 = Sudoku(sudoku_string_1) 
NameError: name 'Sudoku' is not defined 

и если я пытаюсь это исправить, изменив линию 15 в

s1 = sudoku(sudoku_string_1) 

ошибка снова меняется на

Traceback (most recent call last): 
    File "D:\sandbox.py", line 15, in <module> 
    s1 = sudoku(sudoku_string_1) 
TypeError: 'module' object is not callable 

Я использую python версии 2.7.5, и я установил пакет dlxsudoku с помощью команды pip:

pip install dlxsudoku 

как указано на сайте. Я загрузил файл dlxsudoku-0.10.1.tar.gz, на котором была выполнена команда.

Как исправить ошибку и заставить пакет работать? и/или вы можете предложить любые лучшие решения для sudoku для библиотек python?

+0

Согласно вашей второй ошибке, 'sudoku' представляется подпакетами' dlxsudoku'. Вы пробовали 'из dlxsudoku.sudoku import Sudoku'? –

+0

Я не пробовал это, спасибо :) – codingCoffee

ответ

0

Решение:

from dlxsudoku.sudoku import Sudoku 
1

Как создатель пакета, я теперь обновил пакет (0.10.2), так что вы можете импортировать и как

from dlxsudoku import Sudoku 

и

from dlxsudoku.sudoku import Sudoku 

Я намеревался сделать первый стандарт, но, кажется, я забыл сделать необходимый импорт в 0.10.1 ...