如何在 python 中使用 dlxsudoku 包?

How to use dlxsudoku package in python?

我正在尝试使用 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 行将 'Sudoku' 更改为 'sudoku',即

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 并且我使用 pip 命令安装了 dlxsudoku 包:

pip install dlxsudoku

如网站上所述。我下载了执行命令的dlxsudoku-0.10.1.tar.gz文件。

如何修复错误并使程序包正常工作? and/or 你能为 python 推荐更好的数独解决库吗?

解决方案是:

from dlxsudoku.sudoku import Sudoku

作为软件包的创建者,我现在已经更新了软件包 (0.10.2),这样您就可以像

一样导入它们
from dlxsudoku import Sudoku

from dlxsudoku.sudoku import Sudoku

我打算制作第一个标准,但我似乎忘记了在 0.10.1...

中进行必要的导入