1

前面问题中指出的安装问题仍然存在。我尝试在 Windows XP SP3 32 位和 Windows 7 64 位下安装 Z3 4.3.0 和 4.1。任何组合都不起作用!我可以做“ from z3 import *”,但init()Z3 dll 的失败。我的 Python 版本是 2.7.3。Z3 单机版和 Python 单机版确实可以工作,但如果没有很多抱怨,它们就不能一起工作。

这将有助于获得最新的安装配方,它可以回答以下问题:

应该使用哪个Z3下载(源码版、预编译版)?

应该使用哪个 Python 版本?

在 init() 调用中应该引用哪些或各种 Z3 DLL?一个例子会有所帮助(包括带有空格的路径的原始字符串用法)。

应该使用哪些 Z3 Python 源文件(一些 Z3 下载有 *.py 文件,其他有 *.pyc 文件)?编译后的 Python 文件是否兼容多个 Python 版本?

如何设置 PATH 和 PYTHONPATH?

如何以自动提供Z3初始化的方式调用Python的IDLE shell?

抱歉,如果这听起来像是一个新手问题,但是...

4

2 回答 2

6

克里斯托夫的回答是正确的。谢谢!

这里有一些可以帮助其他人的更多细节。(确保相应地调整路径)

修改后的idle.bat脚本Python 2.7.3 (64-bit)

@echo off
rem Start IDLE using the appropriate Python interpreter
setlocal
set PATH=%PATH%;X:\my\Programme\z3-4.3.0-x64\bin
set PYTHONPATH=X:\my\Programme\z3-4.3.0-x64\bin
set CURRDIR=%~dp0
start "IDLE" "%CURRDIR%..\..\pythonw.exe" "%CURRDIR%idle.pyw" %1 %2 %3 %4 %5 %6 %7 %8 %9
endlocal

z3路径必须是inPATH in PYTHONPATH

Python/Idleshell中的前两个语句:

from z3 import *
init(r"X:\my\Programme\z3-4.3.0-x64\bin\libz3.dll")

(注意 'r' 表示带有反斜杠的原始字符串被视为普通字符)

于 2013-02-14T21:28:27.403 回答
1

Windows XP 不支持 Z3 需要的 DLL 中的线程本地存储。我们目前正在对此进行修复,但无论如何,这意味着即使修复了,您也必须编译自己的 DLL。

在 Windows 7 上,它应该开箱即用。但是,您需要确保为 64 位编译所有内容或没有任何内容。如果您使用的是 32 位 python 版本,它将无法加载 64 位 DLL,反之亦然。在Python.org上有两个下载,其中一个标记为 X86-64,它是 64 位版本。

最后需要将libz3.dll和*.pyc/py所在的目录添加到PYTHONPATH中。你可以设置这个系统范围(控制面板、系统、高级系统设置、高级、环境变量),然后 IDLE 也应该看到它。

于 2013-02-13T14:45:35.317 回答