2016-03-20 3 views
0

Ich versuche, einen Sudoku-Löser in Python zu implementieren Beim Versuch, den dokumentierten Code zu implementieren, auf der Website zur Verfügung gestellt, dhWie dlxsudoku Paket in Python verwenden? mit dlxsudoku Paket von <a href="https://pypi.python.org/pypi/dlxsudoku" rel="nofollow">https://pypi.python.org/pypi/dlxsudoku</a></p> <p>

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) 

ich folgende Fehlermeldung erhalte

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

Wenn ich 'Sudoku' auf 'Sudoku' in Zeile 1 zu ändern, dh

from dlxsudoku import sudoku 

Die Fehler Änderungen

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

und wenn ich versuche, dieses Problem zu beheben durch die Linie 15 bis

s1 = sudoku(sudoku_string_1) 

der Fehler erneut Änderungen an

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

Ändern Ich verwende Python Version 2.7.5 und ich installierte das dlxsudoku Paket mit dem Befehl pip:

pip install dlxsudoku 

wie auf der Website erwähnt. Ich habe die Datei dlxsudoku-0.10.1.tar.gz heruntergeladen, auf der der Befehl ausgeführt wurde.

Wie behebe ich den Fehler und bekomme das Paket zu arbeiten? und/oder können Sie bessere Sudoku-Bibliotheken für Python vorschlagen?

+0

Entsprechend Ihrem zweiten Fehler scheint 'Sudoku' ein Unterpaket von' dlxsudoku' zu sein. Hast du 'dlxsudoku.sudoku import Sudoku' versucht? –

+0

Ich hatte das nicht versucht, danke :) – codingCoffee

Antwort

0

Lösung ist:

from dlxsudoku.sudoku import Sudoku 
1

Als Schöpfer des Pakets habe ich jetzt aktualisiert das Paket (0.10.2), so dass Sie beide wie

from dlxsudoku import Sudoku 

und

from dlxsudoku.sudoku import Sudoku 
importieren

Ich beabsichtigte, den ersten Standard zu machen, aber ich habe anscheinend vergessen, dass ich die notwendigen Importe in den 0.10.1 ...

Verwandte Themen