De nuevo: Instalando Z3 + Python en Windows

Los problemas de instalación señalados en una pregunta anterior todavía están presentes. He intentado instalar Z3 4.3.0 y 4.1 bajo Windows XP SP3 de 32 bits y bajo Windows 7 de 64 bits. ¡Ninguna de las combinaciones funciona! Soy capaz de hacer ” from z3 import * “, pero el init() de la dll Z3 falla. Mi versión de Python es 2.7.3. Z3 autónomo y Python autónomo funcionan, pero no funcionan juntos sin muchas quejas.

Sería útil obtener una receta de instalación actualizada que responda a las siguientes preguntas:

¿Qué descarga de Z3 (versión de origen, versión precomstackda) debe utilizarse?

¿Qué versión de Python debería usarse?

¿A cuál o las diversas DLL de Z3 se debe hacer referencia en la llamada a init ()? Un ejemplo ayudaría (incluido el uso de cadenas sin procesar para rutas con espacios en blanco).

¿Qué archivos fuente de Z3 Python se deben usar (algunas descargas de Z3 tienen archivos * .py, otras tienen archivos * .pyc)? ¿Los archivos comstackdos de Python son compatibles con más de una versión de Python?

¿Cómo configurar PATH y PYTHONPATH?

¿Cómo llamar al shell IDLE de Python de tal manera que se proporcione automáticamente la inicialización de Z3?

Lo siento, si esto debería sonar como una pregunta de novato, pero …

Windows XP no admite el almacenamiento local de subprocesos en DLL, que Z3 requiere. Actualmente estamos trabajando en una solución para eso, pero en cualquier caso, esto significará que tendrá que comstackr su propia DLL incluso cuando esté arreglada.

En Windows 7, debería funcionar fuera de la caja. Sin embargo, debe asegurarse de que todo o nada esté comstackdo para 64 bits. Si está utilizando una versión de python de 32 bits, no podrá cargar una DLL de 64 bits y viceversa. En Python.org hay dos descargas, una de ellas con la etiqueta X86-64, que es la versión de 64 bits.

Finalmente, el directorio donde se encuentran libz3.dll y * .pyc / py debe agregarse a PYTHONPATH. Puede configurarlo en todo el sistema (Panel de control, Sistema, Configuración avanzada del sistema, Avanzado, Variables de entorno), luego IDLE también debería verlo.

La respuesta de Christoph es correcta. ¡Gracias!

Aquí hay algunos detalles más que podrían ayudar a otros. (Asegúrate de ajustar el camino en consecuencia)

La secuencia de comandos idle.bat modificada de 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 

La ruta z3 tiene que estar en PATH y en PYTHONPATH .

Las dos primeras declaraciones en el shell de Python/Idle :

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

(note la ‘r’ que indica una cadena en bruto con barras invertidas tratadas como caracteres normales)