2013-02-13 146 views
1

earlier question中指出的安装问题仍然存在。 我试图在Windows XP SP3 32位和Windows 7 64位下安装Z3 4.3.0和4.1。没有一个组合可以工作!我能够做到“from z3 import *”,但Z3 DLL的init()失败。我的Python版本是2.7.3。 Z3独立运行和Python独立运行,但是它们不能在没有大量投诉的情况下一起工作。再次:在Windows上安装Z3 + Python

这将有助于得到了最新的安装配方,回答下列问题:

应该使用

Z3下载(来源版,预编译的版本)?

应该使用哪个Python版本?

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

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

如何设置PATH和PYTHONPATH?

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

对不起,如果这应该听起来像一个新手的问​​题,但...

回答

1

Windows XP不支持在DLL中线程本地存储空间,Z3需要。我们目前正在为此做一个修复,但无论如何,这意味着即使它已修复,您也必须编译自己的DLL。

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

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

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路径必须是在PYTHONPATHPATH

Python/Idle壳前两个语句:

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

(注意“R”,其指示与作为普通的字符处理反斜杠原始字符串)