从Linux调用Windows中的exe

2024-09-25 02:39:37 发布

您现在位置:Python中文网/ 问答频道 /正文

背景知识:Django网站在apache下运行。在

简而言之,我需要从Linux机器调用windows机器中的.exe程序。在

原因是我们的网站运行在Linux上,但是有一个模块依赖于WindowsDLL。所以我们计划把它放在一个单独的windows服务器上,并使用一些方法来调用exe程序,然后返回结果。在

我的想法是:在windows机器上设置一个web服务,向它发布一些数据,让它自己处理exe程序,并返回一些数据作为响应。请注意,请求数据和响应数据都将包含文件。在

我想知道有没有更整洁的方法?在

编辑:谢谢@fhs,我发现我没有把我的主要问题弄清楚。是的,网络服务可以工作。但这样做的主要缺点是:基本上,我需要将几个文件发布到windows;windows接收文件,保存它们,使用这些文件作为参数调用程序,然后将结果文件打包成zip并返回。在linux中,接收文件,将其解压缩到本地文件系统。有点麻烦。在

那么,有没有办法让两台机器像在本地文件系统中一样方便地访问另一台计算机的文件?在


Tags: 模块文件数据django方法程序机器网站
1条回答
网友
1楼 · 发布于 2024-09-25 02:39:37

我可以想出一些办法:

  • REST和跨站点脚本服务
  • 使用葡萄酒(正如他在评论中建议的那样)
    但这对于实际生产来说是非常危险的,而且可能根本不起作用(或者只是当负载变得更重时)
  • 在windows机器中编写一些代码,并使用类似于Zero MQ(ZMQ)或类似产品来调用此代码

根据您使用此库的方式,一种解决方案可能比其他解决方案更适合。在

大多数情况下,我建议使用ZMQ 这样,您可以使用更复杂的通信模型(订阅订户、发送响应等)
另外,如果需要的话,使用ZMQ可以让您以一种非常简单的方式进行扩展(您将能够放置很少的windows机器来处理请求)

编辑:
要支持机器之间的文件传输,您也只有几个选项。在

  • 使用ZMQ。文件可以只是一个数据流。
    用ZMQ支持这样的流没有问题
  • 文件服务器与一些Enq一起使用。程序
    环境质量。可以通过ZMQ msg通知另一方文件已准备就绪
    您可以使用文件夹共享而不是文件服务器,但在windows计算机上共享文件不是一个可扩展的解决方案
  • Windows程序可以通过FTP或SSH将文件发送到Linux服务器。
    再一次,信令(文件就绪,文件名,…)可以用ZMQ完成

相关问题 更多 >