Асимптота в питоне

Я недавно пытался использовать Asymptote в Python. Следуя указаниям здесь: http://asymptote.sourceforge.net/doc/Interactive-mode.html, в самом низу, он говорит, чтобы разместить asymptote.py файл на пути Python. Я сделал это, но когда я пытаюсь выполнить некоторый код, он выдает ошибку (Python установлен в C:\Python27, в то время как asymptote.py установлен в C:\Python27\Lib\site-packages):

-: 4.1: syntax error
error: could not load module '-'

Код внутри asymptote.py здесь наклеено:

# Python module to feed Asymptote with commands
# (modified from gnuplot.py)
from subprocess import *
class asy:
    def __init__(self):
        self.session = Popen(['asy', '-quiet', '-interactive'], stdin=PIPE)
        self.help()
    def send(self, cmd):
        self.session.stdin.write(cmd+'\n')
        self.session.stdin.flush()
    def size(self, size):
        self.send("size(%d);" % size)
    def draw(self, str):
        self.send("draw(%s);" % str)
    def fill(self, str):
        self.send("fill(%s);" % str)
    def clip(self, str):
        self.send("clip(%s);" % str)
    def label(self, str):
        self.send("label(%s);" % str)
    def shipout(self, str):
        self.send("shipout(\"%s\");" % str)
    def erase(self):
        self.send("erase();")
    def help(self):
        print "Asymptote session is open.  Available methods are:"
        print "    help(), size(int), draw(str), fill(str), clip(str), label(str), shipout(str), send(str), erase()"
    def __del__(self):
        print "closing Asymptote session..."
        self.send('quit');
        self.session.stdin.close();
        self.session.wait()
if __name__=="__main__":
    g = asy()
    g.size(200)
    g.draw("unitcircle")
    g.send("draw(unitsquare)")
    g.fill("unitsquare, blue")
    g.clip("unitcircle")
    g.label("\"$O$\", (0,0), SW")
    raw_input("press ENTER to continue")
    g.erase()
    del g

Мой код:

from asymptote import *
g=asy()
g.size(200)
g.draw("unitcircle")
g.send("draw(unitsquare)")
g.fill("unitsquare, blue")
g.clip("unitcircle")
g.label("\"$O$\", (0,0), SW")

Я это понимаю asymptote.py предназначен только для подачи команд asy.exe, и я имею Asymptote установлен на моем компьютере. Как я могу устранить эту ошибку?

0 ответов

Другие вопросы по тегам