首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Win10中的本机接口在Python中运行Win10

通过Win10中的本机接口在Python中运行Win10
EN

Stack Overflow用户
提问于 2020-01-12 15:09:56
回答 2查看 292关注 0票数 2

在使用本机python接口时,我试图通过python调用MiniZinc

该接口是working,在Ubuntu下,但不在Win10中。

我正在使用的代码如下所示,可在MiniZinc 一个基本的例子的官方网站上找到

我已经创建了nqueens.mzn文件并将其添加到项目的目录中。

我得到的错误如下:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:/Users/Sallo/PycharmProjects/MiniZincTest/main.py", line 11, in <module>
    result = instance.solve()
  File "C:\Users\Sallo\Python\Python37\lib\site-packages\minizinc\instance.py", line 99, in solve
    return asyncio.run(coroutine)
  File "C:\Users\Sallo\Python\Python37\lib\asyncio\runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "C:\Users\Sallo\Python\Python37\lib\asyncio\base_events.py", line 579, in run_until_complete
    return future.result()
  File "C:\Users\Sallo\Python\Python37\lib\site-packages\minizinc\CLI\instance.py", line 394, in solve_async
    **kwargs,
  File "C:\Users\Sallo\Python\Python37\lib\site-packages\minizinc\CLI\instance.py", line 310, in solutions
    proc = await self._driver.create_process(cmd, solver=self._solver)
  File "C:\Users\Sallo\Python\Python37\lib\site-packages\minizinc\CLI\driver.py", line 170, in create_process
    stderr=asyncio.subprocess.PIPE,
  File "C:\Users\Sallo\Python\Python37\lib\asyncio\subprocess.py", line 217, in create_subprocess_exec
    stderr=stderr, **kwds)
  File "C:\Users\Sallo\Python\Python37\lib\asyncio\base_events.py", line 1529, in subprocess_exec
    bufsize, **kwargs)
  File "C:\Users\Sallo\Python\Python37\lib\asyncio\base_events.py", line 458, in _make_subprocess_transport
    raise NotImplementedError
NotImplementedError

以下是代码:

代码语言:javascript
复制
from minizinc import Instance, Model, Solver

# Load n-Queens model from file
nqueens = Model("./nqueens.mzn")
# Find the MiniZinc solver configuration for Gecode
gecode = Solver.lookup("gecode")
# Create an Instance of the n-Queens model for Gecode
instance = Instance(gecode, nqueens)
# Assign 4 to n
instance["n"] = 4
result = instance.solve()
# Output the array q
print(result["q"])

EN

回答 2

Stack Overflow用户

发布于 2020-01-13 22:49:57

这个问题是由于对asyncio库的支持有限造成的。直到Python3.8,默认事件循环才支持MiniZinc Python库使用的功能。这个问题在MiniZinc Python问题解决程序(https://gitlab.com/minizinc/minizinc-python/issues/14)上有报道,并在不久之后得到了修复。

昨天是MiniZinc Python0.2.1版本的新版本发布的日子,该版本包括了这个修复程序和一些小的更改。它现在使用Python3.6应该是因为重新下载包将MiniZinc Python版本从0.2.0更新到0.2.1。

票数 2
EN

Stack Overflow用户

发布于 2020-01-13 15:12:37

偶然找到了解决方案。

我把python的等级从3.7降到3.6,现在它也在windows上工作.

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59705146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档