Z3-solver安装在Python 3(Spyder编辑器)中,但无法导入所有位置

mf98qq94  于 4个月前  发布在  Python
关注(0)|答案(2)|浏览(132)

我已经尝试安装Z3定理求解器(https://github.com/Z3Prover/z3)。我可以运行z3-4.12.4版本中的示例文件。该文件位于“..\z3-4.12.4-x64-win\bin\python”中,如下所示:

from z3 import *

x = Real('x')
y = Real('y')
s = Solver()
s.add(x + y > 5, x > 1, y > 1)
print(s.check())
print(s.model())

字符串
如果我尝试从不同的位置运行此示例代码,则会得到以下错误:

ModuleNotFoundError: No module named 'z3'


下面是我使用的平台的相关详细信息,到目前为止我已经采取了安装步骤:

平台:

  • 我使用的是Windows-11 64 bit。
  • 使用Python 3.12.1
  • 我使用Spyder编辑器编写代码。
    安装步骤:
  • 我去https://github.com/Z3Prover/z3/releases/tag/z3-4.12.4下载了文件“z3-4.12.4-x64-win”。
  • 解压缩文件“z3-4.12.4-x64-win”并将其放置在“C:\Users\name\AppData\Local\Programs\Python\Python312\Lib\site-packages”中。
  • 将以下位置添加到“Path”选项变量“C:\Users\name\AppData\Local\Programs\Python\Python312\Lib\site-packages\z3-4.12.4-x64-win\bin”。
  • 创建另一个名为“PYTHONPATH”的环境变量,并添加以下位置“C:\Users\name\AppData\Local\Programs\Python\Python312\Lib\site-packages\z3-4.12.4-x64-win\bin\python”。

在这一点上,我希望事情的工作,但我仍然得到上面显示的错误。我也试图安装z3-solver使用pip,但这没有什么区别,我的问题。

s5a0g9ez

s5a0g9ez1#

在我的配置中,变量是:

path = Z:\Tools\Python38;Z:\Tools\z3-4.12.2-x64-win\bin
pythonpath = Z:\Tools\z3-4.12.2-x64-win\bin\python

字符串
我没有将 Z3 python文件复制到site-packages,而是将它们保留在 Z3 安装目录中,并相应地调整了pythonpath

izj3ouym

izj3ouym2#

我已经设法解决了这个问题。
我发现,如果我通过PowerShell运行python(或者使用命令提示符),那么我就可以导入z3模块而没有任何问题。这告诉我,问题是Spyder无法找到z3模块。
按照Norberto的建议,似乎我所要做的就是进入我的Spyder编辑器,在Tools>Pythonpath manager中添加路径到我保存z3模块的位置。
不幸的是,我收到了以下错误:“此目录无法添加到PATH。如果你想设置不同的Python解释器,请转到首选项>主解释器”。这个错误也在post中讨论过。
在那篇文章中,我看到了卸载Spyder的评论,并通过conda再次安装它。这个website解释了如何做到这一点,卸载Spyder后,下一步是安装miniconda。
不幸的是,在website中conda是一个公认的命令,但这不是我的情况。这又是一个常见的问题,在下面的post中有所涉及。来自Raja Ram T的answer有助于解决这个问题。
一旦我终于解决了我的conda问题,我就能够回去遵循这个website的建议,一旦完成,我终于解决了这个问题。
我希望这对其他遇到同样困难的人有所帮助。鉴于我对这一切知之甚少,我也会期待任何改进的替代方案。

相关问题