如何在Linux下安装z3forpython3

2024-10-01 15:46:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python3中运行一个以Z3作为依赖项的程序(importsz3)

我能够安装不稳定版本的Z3(假设它支持Python3),但是它只安装python2.7的库。在

Here are the instructions在项目中:

python scripts/mk_make.py
cd build
make
sudo make install

有人知道如何为Python3安装z3work吗?在

谢谢。在


Tags: the项目py程序版本makeherescripts
1条回答
网友
1楼 · 发布于 2024-10-01 15:46:09

我不得不修改脚本/mk_实用程序.py为了将Python2中的几行代码转换为Python3,并将tab替换为其他几行中的空格,这样就可以了!。在

似乎有人无意中引入了与Python3不兼容的更改。在

我注意到莱昂纳多·德穆拉(Leonardo de Moura)对此表示关注,他对z3 git回购进行了调整。在

这里有条路以防万一

 - z3-original/scripts/mk_util.py
+++ z3/scripts/mk_util.py
@@ -640,7 +640,7 @@

 def is_clang_in_gpp_form(cc):
     version_string = subprocess.check_output([cc, ' version'])
-    return version_string.find('clang') != -1
+    return str(version_string).find('clang') != -1

 def is_CXX_clangpp():
     if is_compiler(CXX, 'g++'):
@@ -1485,7 +1485,7 @@
                 print('Java Compiler:  %s' % JAVAC)
     else:
         global CXX, CC, GMP, FOCI2, CPPFLAGS, CXXFLAGS, LDFLAGS, EXAMP_DEBUG_FLAG
-   OS_DEFINES = ""
+        OS_DEFINES = ""
         ARITH = "internal"
         check_ar()
         CXX = find_cxx_compiler()
@@ -1508,7 +1508,7 @@
                 SLIBEXTRAFLAGS = '%s %s' % (SLIBEXTRAFLAGS,FOCI2LIB)
                 CPPFLAGS = '%s -D_FOCI2' % CPPFLAGS
             else:
-                print "FAILED\n"
+                print("FAILED\n")
                 FOCI2 = False
         if GIT_HASH:
             CPPFLAGS = '%s -DZ3GITHASH=%s' % (CPPFLAGS, GIT_HASH)
@@ -1536,21 +1536,21 @@
             SLIBFLAGS = '-dynamiclib'
         elif sysname == 'Linux':
             CXXFLAGS       = '%s -fno-strict-aliasing -D_LINUX_' % CXXFLAGS
-       OS_DEFINES     = '-D_LINUX'
+            OS_DEFINES     = '-D_LINUX'
             SO_EXT         = '.so'
             LDFLAGS        = '%s -lrt' % LDFLAGS
             SLIBFLAGS      = '-shared'
             SLIBEXTRAFLAGS = '%s -lrt' % SLIBEXTRAFLAGS
         elif sysname == 'FreeBSD':
             CXXFLAGS       = '%s -fno-strict-aliasing -D_FREEBSD_' % CXXFLAGS
-       OS_DEFINES     = '-D_FREEBSD_'
+            OS_DEFINES     = '-D_FREEBSD_'
             SO_EXT         = '.so'
             LDFLAGS        = '%s -lrt' % LDFLAGS
             SLIBFLAGS      = '-shared'
             SLIBEXTRAFLAGS = '%s -lrt' % SLIBEXTRAFLAGS
         elif sysname[:6] ==  'CYGWIN':
             CXXFLAGS    = '%s -D_CYGWIN -fno-strict-aliasing' % CXXFLAGS
-       OS_DEFINES     = '-D_CYGWIN'
+            OS_DEFINES     = '-D_CYGWIN'
             SO_EXT      = '.dll'
             SLIBFLAGS   = '-shared'
         else:
@@ -1586,7 +1586,7 @@
         config.write('SLINK_FLAGS=%s\n' % SLIBFLAGS)
         config.write('SLINK_EXTRA_FLAGS=%s\n' % SLIBEXTRAFLAGS)
         config.write('SLINK_OUT_FLAG=-o \n')
-   config.write('OS_DEFINES=%s\n' % OS_DEFINES)
+        config.write('OS_DEFINES=%s\n' % OS_DEFINES)
         if is_verbose():
             print('Host platform:  %s' % sysname)
             print('C++ Compiler:   %s' % CXX)

相关问题 更多 >

    热门问题