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 を使用する他の方法がありますか?