私は2つのpythonスクリプトを持っています。 1stはFlaskサーバ、2ndはNRF24L01受信機/送信機(Raspberry Pi3)スクリプトです。両方のスクリプトが同時に実行されています。私はこれらの2つのスクリプトの間で変数(変数は一定ではありません)を渡したいと思います。私はそれをどのようにもっとも簡単な方法で行うことができますか?Pythonスクリプト間の通信
1
A
答えて
1
python RPCの設定はどうですか?私。各スクリプトでサーバーを実行し、各スクリプトを相互にリモートプロシージャコールを呼び出すクライアントにすることもできます。
https://docs.python.org/2/library/simplexmlrpcserver.html#simplexmlrpcserver-example
0
私はSushの命題に基づか完全なソリューションを提案したいと思います。ここ数日間、別々に実行される2つのプロセス間の通信の問題に苦しんでいます(私の場合は同じマシン上で)。多くのソリューション(ソケット、RPC、単純なRPCや他のサーバー)がありますが、すべてにはいくつかの制限があります。私のために働いたのはSimpleXMLRPCServerモジュールでした。すべての面で直接ソケット操作よりも高速で信頼性が高く、優れています。きれいにクライアントから閉じることができ、完全に機能するサーバーは、同じように短いです:
from SimpleXMLRPCServer import SimpleXMLRPCServer
quit_please = 0
s = SimpleXMLRPCServer(("localhost", 8000), allow_none=True) #allow_none enables use of methods without return
s.register_introspection_functions() #enables use of s.system.listMethods()
s.register_function(pow) #example of function natively supported by Python, forwarded as server method
# Register a function under a different name
def example_method(x):
#whatever needs to be done goes here
return 'Enterd value is ', x
s.register_function(example_method,'example')
def kill():
global quit_please
quit_please = 1
#return True
s.register_function(kill)
while not quit_please:
s.handle_request()
私の主なヘルプは、古い記事がhereた15年でした。
また、多くのチュートリアルでは、マルチスレッド化せずにきれいに停止することが本当の痛みであるs.server_forever()
を使用しています。
import xmlrpclib
serv = xmlrpclib.ServerProxy('http://localhost:8000')
例:
は、あなたがする必要があるすべては基本的に2行でサーバーと通信するには
>>> import xmlrpclib
>>> serv = xmlrpclib.ServerProxy('http://localhost:8000')
>>> serv.example('Hello world')
'Enterd value is Hello world'
そして、それはそれです!完全に機能し、高速かつ信頼できる通信。私は常にいくつかの改善が行われていることを認識していますが、ほとんどの場合、このアプローチは完璧に機能します。
関連する問題
- 1. PythonとWCF間の通信
- 2. Pythonプロセス間の通信
- 3. スクリプト間の通信| 3つの方法
- 4. ルータと通信するPythonスクリプト
- 5. Pythonの2つのプログラム間の通信
- 6. QTScriptとPythonの間のソケット通信
- 7. ラケットプログラムとPythonプログラムの間の通信
- 8. LinuxでのPythonでのプログラム間通信
- 9. ラケットプログラムとPythonプログラム間の通信 - 2
- 10. Pythonの関数間で通信する
- 11. JavaScriptスクリプトとPythonスクリプトの間で文字列を送信
- 12. スニッフプロセス間通信
- 13. プロセス間通信
- 14. デバイス間通信
- 15. 間のスレッド通信
- 16. iFrames間の通信?
- 17. サービスファブリックアプリケーション間の通信
- 18. セッション間の通信
- 19. オブジェクト間の通信
- 20. アプリケーション間の通信?
- 21. スレッド間の通信?
- 22. クラスタノード間の通信
- 23. プロセス間の通信
- 24. フォーム間の通信
- 25. ローカルファイルソケットを使用したPythonとC++間のプロセス間通信?
- 26. バックグラウンドスクリプトとページ(ポップアップ)スクリプト間の通信方法は?
- 27. シリアル通信:python
- 28. プロデューサ - コンシューマ間スレッド間通信
- 29. は、まず、私はPythonスクリプトに変数を送信ノードアプリとPythonスクリプト 間で通信するために、パイソン、シェルを使用して、Node.jsのアプリ
- 30. Python:スクリプトのファミリー間で共通コードを共有する
ありがとうございました。試してみます。 C、C++を使用する場合、ポインタを使用してそれを行うことができますか?しかし、Pythonはポインタをサポートしていません。別の私のアイデアは、両方のスクリプトをマージすることですが、私は遅いプログラムを持っていることを恐れていますか? –
なぜあなたはショープログラムを持っていると思いますか?どんなレベルのレスポンスが必要ですか? – Sush