Czy istnieje łatwy w użyciu mostek Ruby do Pythona? A może lepiej użyć systemu()?Jak mogę wywołać kod Pythona z Ruby?
Odpowiedz
Nie sądzę, że istnieje sposób na wywołanie Pythona z Ruby bez rozwidlenia procesu, przez system() lub coś podobnego. Czasy uruchamiania wersji językowych są zupełnie różne, i tak musiałyby być w oddzielnych procesach.
wywoływać procesy za pomocą modułu podprocesowego. system() bardzo brakuje, zabijmy bestię. – nosklo
Możesz spróbować Masaki Fukushima's library osadzania pythona w ruby, chociaż nie wydaje się być utrzymywany. YMMV
Dzięki tej bibliotece skrypty Ruby mogą bezpośrednio wywoływać dowolne moduły Pythona. Można użyć zarówno modułów rozszerzających, jak i modułów napisanych w języku Python.
zabawnie nazwany Unholy od pomysłowy Dlaczego Lucky Stiff może być również użyteczne:
kompilacji Ruby do kodu bajtowego Pythona.
A ponadto, przełożenie tej
bajtowego powrotem do Pythona kodu źródłowego stosując Decompyle (zawarte).Wymaga Ruby 1,9 i Pyton 2.5.
Nice. Nie słyszałem wcześniej o nieświętym. –
Aby można było uruchomić kod Pythona, należy uruchomić interpreter jako proces. Zatem system() jest twoją najlepszą opcją.
Do wywołania kodu Pythona można użyć RPC lub gniazd sieciowych, ale dla najprostszej rzeczy, która mogłaby działać.
Świetnie, właśnie to zamierzam zrobić. Nie widzisz żadnego powodu, aby być bardziej doświadczonym niż używając samego systemu(). – Eric
Nie sądzę, że to prawda: zobacz http://docs.python.org/extending/embedding.html w celu dokumentacji osadzenia interpretera Pythona w innej aplikacji. Który dla perwersyjnego mógłby być tłumaczem Rubiego. –
gem install rubypython
Jeśli chcesz użyć kodu Pythona jak skrypt Pythona jest funkcją, spróbuj IO.popen.
Jeśli chcesz odwrócić każdy ciąg w tablicy używając skryptu pythonowego "reverse.py", Twój kod ruby będzie wyglądał następująco.
strings = ["hello", "my", "name", "is", "jimmy"]
#IO.popen: 1st arg is exactly what you would type into the command line to execute your python script.
#(You can do this for non-python scripts as well.)
pythonPortal = IO.popen("python reverse.py", "w+")
pythonPortal.puts strings #anything you puts will be available to your python script from stdin
pythonPortal.close_write
reversed = []
temp = pythonPortal.gets #everything your python script writes to stdout (usually using 'print') will be available using gets
while temp!= nil
reversed<<temp
temp = pythonPortal.gets
end
puts reversed
Następnie skrypt Pythona będzie wyglądał jak ten
import sys
def reverse(str):
return str[::-1]
temp = sys.stdin.readlines() #Everything your ruby programs "puts" is available to python through stdin
for item in temp:
print reverse(item[:-1]) #Everything your python script "prints" to stdout is available to the ruby script through .gets
#[:-1] to not include the newline at the end, puts "hello" passes "hello\n" to the python script
Wyjście: olleh ym Eman si ymmij
Autor szuka wywołania kodu Pythona z ruby, a nie kodu ruby z Pythona. –
- 1. Jak mogę wywołać erlang z Pythona?
- 2. Jak mogę wywołać 'git pull' z poziomu Pythona?
- 3. Jak mogę wywołać funkcje C++ z poziomu ruby
- 4. Jak wywołać listę Pythona podczas debugowania?
- 5. Jak uruchomić kod Ruby z terminala?
- 6. jak wywołać skrypt Pythona z R z argumentami
- 7. Jak mogę wywołać prywatny destruktor z shared_ptr?
- 8. Jak wywołać skrypt Pythona wewnątrz pliku jar przy użyciu Pythona?
- 9. Jak sprawdzić kod bajtowy Pythona?
- 10. Jak mogę wywołać przepełnienie bufora?
- 11. Czy można wywołać moduł Pythona z ObjC?
- 12. Jak mogę wywołać metodę z parametrem out?
- 13. Android: Jak mogę wywołać startResolutionForResult z usługi?
- 14. Jak wywołać skrypt Pythona na excel vba?
- 15. Najbezpieczniejszy kod Pythona działający
- 16. Jak wywołać metodę klasy dynamicznie w Ruby
- 17. Jak wywołać kod .NET (C#/vb.net) z vbScript?
- 18. Jak wywołać skrypt Pythona lub powłoki z poziomu Extendscript?
- 19. Równowartość w Ruby Pythona setattr()
- 20. Jak mogę wysłać JSON przez HTTP w Ruby po konwersji z Pythona?
- 21. Wyliczenie Pythona w Ruby?
- 22. Pythona równoważnik Perl/Ruby || =
- 23. Jak osadzić kod Pythona w skrypcie
- 24. Jak mogę uzyskać godziny z datetime Pythona?
- 25. Jak mogę łatwo przekonwertować kod FORTRAN do kodu Pythona (prawdziwy kod, nie opakowania)
- 26. Kod Ruby do JAR
- 27. Jak dokumentować kod Ruby za pomocą Doxygen?
- 28. Ruby, kod źródłowy Splat?
- 29. Jak mogę przetransponować różne ruby?
- 30. jak zrobić ten kod Pythona mniej brzydki
zadałem podobne pytanie tutaj wcześniej; Być może odpowiedzi byłyby pomocne: http://stackoverflow.com/questions/2413878/would-it-be-possible-tointegrate-python-or-perl-with-ruby. – Yktula