10 Stimmen

Wäre es möglich, Python oder Perl mit Ruby zu integrieren?

Wäre es möglich, Python (und/oder Perl) und Ruby zu integrieren? Ich habe mir http://www.goto.info.waseda.ac.jp/~fukusima/ruby/python/doc/ und http://code.google.com/p/ruby-perl/ angesehen, aber beide scheinen ziemlich veraltet zu sein.

Hat jemand eine Ruby-Schnittstelle für Pythons C-API erstellt?

Bearbeitung: Python kann laut http://wiki.python.org/moin/IntegratingPythonWithOtherLanguages mit vielen anderen Sprachen integriert werden. Diese Liste enthält jedoch kein Ruby.

7voto

Chris Long Punkte 2893

Meine Schule (Georgia Tech), zusammen mit Bryn Mawr und Microsoft Research, arbeiten derzeit an einem Projekt namens Pyjama. Grundsätzlich verwendet es den Microsoft DLR, um es Ihnen zu ermöglichen, Python und Ruby frei zu mischen. Ich habe es noch nicht ausprobiert, aber es hört sich ziemlich cool an.

Hier ist ein Beispiel von der Website. Sie geben die Klasse im "Python-Modus" ein. Dann wird sie kompiliert und Sie führen den Befehl im "Ruby-Modus" aus.

class PythonClass:
     def hello(self, value):
         print "Python sagt hallo zu", value

pc = python_class().new
pc.hello "Ruby"

Was "Python sagt hallo zu Ruby" produziert.

5voto

brian d foy Punkte 124323

Die Integration dynamischer Sprachen ist eines der Ziele des Parrot Projekts. Es handelt sich um eine virtuelle Maschine, auf die dynamische Sprachencompiler abzielen. Sobald sie zur gleichen virtuellen Maschine kompiliert wurden, sollten Sie die "Objekt" -Form in einer beliebigen Sprache verwenden können, unabhängig von der Quelle des Objekts.

Das Problem im Moment ist jedoch, die virtuelle Maschine zu stabilisieren und die größtenteils fertigen Compiler fertigzustellen. Allerdings war das schon lange Zeit so. :)

2voto

mikerobi Punkte 19791

Es könnte möglich sein, aber nicht sehr praktisch. Es wäre deutlich einfacher, die benötigten Module von einer auf die andere Plattform zu portieren, als einen der Interpreter in den anderen einzubetten.

Wenn Sie unbedingt beide Sprachen in einem Projekt verwenden müssen, wäre Ihre beste Option wahrscheinlich die Kombination von Jython und Jruby oder IronPython und IronRuby. Ich bin mir nicht sicher, ob Sie sie dazu bringen könnten, miteinander zu kommunizieren, aber zumindest könnten Sie sie auf derselben virtuellen Maschine hosten.

2voto

ajmurmann Punkte 1553

Für ein Forschungsprojekt wollte ich das fabelhafte matplotlib nutzen, das für Python verfügbar ist. Auch habe ich diese von dir erwähnte Bibliothek gefunden. Allerdings scheint es nicht besonders beliebt und gut getestet zu sein. Deshalb habe ich beschlossen, das Skript zu schreiben, das Graphen mit reinem Python generiert und es von Ruby aus über popen aufgerufen. Das hat bei mir sehr gut funktioniert.

2voto

Pete Punkte 17557

Sie können Erweiterungen für Ruby in C schreiben.

Also, wenn Python eine C-API hat, können Sie eine C-Erweiterung für Ruby schreiben, die diese API verwendet.

Ich weiß nichts über die Python-API oder wie groß ein Teil ist, den Sie integrieren möchten, aber wenn es nicht zu groß ist, könnte dies Ihnen möglicherweise einen Weg bieten, Python-Code von Ruby auszuführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X