首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到MiniZinc驱动程序

找不到MiniZinc驱动程序
EN

Stack Overflow用户
提问于 2021-05-06 19:27:27
回答 1查看 104关注 0票数 0

我正尝试在Ubuntu上运行一个使用minizinc模块的Python脚本。

该脚本在Windows机器上运行良好。然而,当我尝试在Ubuntu上运行相同的脚本时,我得到了以下错误:

代码语言:javascript
复制
RuntimeWarning: MiniZinc was not found on the system. No default driver could be initialized.

minizinc模块文档警告了Linux系统上的这个错误,并指出可以使用minizinc.find_driver()函数手动提供驱动程序的路径。我尝试使用该函数手动设置驱动程序路径,但出现了相同的错误(我可能设置错了)。

我是新手,正如你可能会说的那样,我想知道是否有人可以启发我如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-05-07 08:04:59

有两种方法可以让MiniZinc Python知道MiniZinc的安装位置:

  • 可以将PATH环境变量附加到minizinc可执行文件的安装目录。
  • 可以使用find_driver函数选择特定的驱动程序,然后对返回的Driver对象使用make_default方法。

对于任何一种方法,您首先都需要找到minizinc可执行文件的安装位置。如果使用AppImage安装,则可以创建符号链接:

代码语言:javascript
复制
$ ln -s MiniZinc<something>.AppImage /my/path/to/minizinc

然后,此符号链接将作为MiniZinc可执行文件运行。在下面的示例中,我将使用/my/path/to/minizinc作为MiniZinc的位置,但是您可以找到它在您自己的计算机上的位置。

方法1

除非您想要使用多个版本的MiniZinc,否则通常首选使用第一种方法。如果您有一个要执行的MiniZinc Python脚本script.py。您只需先将可执行文件位置添加到PATH环境变量,然后运行脚本即可。

代码语言:javascript
复制
$ export PATH=$PATH:/my/path/to
$ python script.py

您只需为每个终端会话设置一次PATH,因此之后您只需重复运行第二行即可。如果您经常使用MiniZinc,那么将这行export代码转换为.bashrc (或者根据您使用的不同文件的外壳而定)可能是一个好主意。

方法2

另一种方法是编辑您的MiniZinc Python脚本。你曾经拥有的地方

代码语言:javascript
复制
import minizinc

[SOMETHING]

你现在可以写下

代码语言:javascript
复制
import minizinc

my_driver = minizinc.find_driver("/my/path/to")
my_driver.make_default()

[SOMETHING]

为了确保它找到了可执行文件,您甚至可以添加print(my_driver),这样就可以查看它找到了哪个MiniZinc可执行文件。

请注意,此方法仍然会给您一个警告,因为在导入时,MiniZinc Python无法找到驱动程序。这还会降低Python代码的可移植性,因为其他人可能已经在不同的位置安装了MiniZinc。

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

https://stackoverflow.com/questions/67417208

复制
相关文章

相似问题

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