1

Google アプリ エンジンで z3 を実行するのに役立つ純粋な python z3 パッケージを見つけたいと思います。次の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()

ただし、動作させるには次のファイルが必要です: z3.pyc、z3consts.pyc、z3core.pyc、z3printer.pyc、z3types.pyc、libz3.dylib。これらのファイルは、z3 codeplex サイトからのダウンロードから z3 をビルドすることで取得しました。

したがって、アプリIDフォルダー内の「lib」フォルダーにあるこれらのファイルを使用して、main.py(Googleが提供する「hello world」プログラム)の次の適応を試みました。

import webapp2
from random import randint
import sys
sys.path.insert(0, 'lib')
from z3 import *

class MainHandler(webapp2.RequestHandler):
    def get(self):
        x = Real('x')
        y = Real('y')
        s = Solver()
        s.add(x + y > 5, x > 1, y > 1)
        self.response.write(s.check())
        self.response.write(s.model())
        self.response.write('Hello world! '+str(randint(7,14)))

app = webapp2.WSGIApplication([('/', MainHandler)], debug=True)

このコードをアプリ エンジン ランチャーで実行すると、空白のページが表示され、エラー メッセージは表示されません。

z3 関連のコードをすべてコメント アウトすると、予想どおり、Hello World メッセージが表示されます。

注: サード パーティのライブラリを含める方法に関する記事 14850853 を読み、BeautifulSoup を使用して正常にテストしました。私の質問は、純粋な python z3 ライブラリの可用性についてです。

サンドボックスに関する Google のドキュメントから、*.pyc ファイルは問題ないと確信していますが、これらのファイルが機能するために必要な (16MB) libz3.dylib は純粋な python ではないと思います。z3 の純粋な Python バージョンは存在しますか、それともアプリ エンジンで z3 を使用する他の方法がありますか?

4

1 に答える 1