Tag: python

pdb / ipdb如何处理debuggingstdin / stdout

我有一个运行python程序的nodejs脚本。 我希望能够在debugging会话开始时与pdb进行交互。 我正在使用这个来开始我的过程: var cp = require('child_process') var app = cp.spawn('python_app', ['param']) app.stdout.pipe(process.stdout) app.stderr.pipe(process.stderr) process.stdin.pipe(app.stdin) 不幸的是,当debugging会话开始时,我没有看到任何东西,过程简单地挂起。 我猜测pdb / ipdb正在工作,但似乎没有任何事情发送到pdb。 可以从nodejs与pdb进行交互吗?

如何在Bluemix的node.js应用程序中调用python脚本?

提交我的node.js应用程序的searchForms后,我想运行文本处理Python脚本。 我知道如何使用child_process调用脚本并在js中产生脚本,但是应该在应用程序上设置什么(可能是一些package.json条目?),以便在部署到Bluemix之后能够运行Python? 谢谢你的帮助!

我如何使用参数化过滤创build一个类似Twitter的stream媒体API?

我正在尝试开发一个与Twitter的stream式API( https://dev.twitter.com/streaming/reference/post/statuses/filter )function相同的数据streamAPI,即具有过滤function的数据stream。 我正在生成大量数据,并希望将其提供给客户端。 我知道如何制作一个为所有客户端提供相同数据的应用程序。 这相对容易。 我遇到的困难来自于允许客户指定数据filter并为每个客户提供独特的数据。 我的想法: 首先我想打开stream式HTTP请求(如Twitter)。 我可以创build一个端点来接受带有参数的GET请求(例如https://stream.example.com/v1/filter.json?track=twitter )。 根据这个答案streamAPI和Rest API? ,这不容易扩展,需要大量的资源。 然后我想用websockets,让客户端提供一个过滤信息(例如locations = -122.75,36.8,-121.75,37.8)。 但是,我找不到一个WS服务器为每个客户端分配唯一数据的好例子。 如果inheritance了tornado.websocket.WebSocketHandler或类似的实现,这个类会是什么样子? 我还考虑将数据推送到消息服务(RabbitMQ)或数据库(Redis),并在客户端连接到其独特的频道时订阅客户端。 (我想这个问题任何想法如何创build参数化的streamapi? )。 我不知道创build独特渠道的有效方法。 这似乎也过于复杂。 我宁愿在Python中这样做,但我也会考虑使用Ruby和JS实现。

尝试设置一个调用Python脚本的Node.Js服务器

我正在尝试设置一个简单的Node.Js服务器,它在打一个url时调用一个Python脚本。 下面给出的是python和Node js服务器文件。 当我打到服务器的url。 页面加载! 但然后服务器崩溃,并给我以下错误(在cmd提示符): Server listening on: http://localhost:8080/ this is here so we are in events.js:141 throw er; // Unhandled 'error' event ^ Error: spawn C:UsersShubhamAnaconda3libos.py ENOENT at exports._errnoException (util.js:837:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32) at onErrorNT (internal/child_process.js:344:16) at doNTCallback2 (node.js:429:9) at process._tickCallback (node.js:343:17) 这在Web浏览器控制台中: GET http://localhost:8080/favicon.ico net::ERR_CONNECTION_REFUSED 我查了类似的问题。 但是他们有点不同,他们的修复不能帮助我。 我已经清除了高速caching并进行了检查。 Python文件: import sys def […]

你可以派生一个用Python或PHP服务器以不同语言编写的subprocess,就像使用Node.js一样吗?

什么是Python(Tornado / Flask / etc)或者Apache / PHP方式来产生subprocess来运行用Python或PHP编写的不同编程语言的脚本,并通过标准input和输出与服务器通信? 我正在寻找相当于Node.js“child_process”库的Python / PHP。 我是一个Node.js程序员,试图certificate在我们公司的基础架构上使用它是合理的,而我们这个行业(研究科学)的一个主要特点是,我将能够使用Python和R无缝地使用Node.js服务器。 在声明我们需要Node.js来获得这个好处之前,我想确保你不能对基于Python或PHP的服务器做同样的事情。 我不太清楚如何search这个

本地服务器由PythonJS

我下载了这个演示服务器 。 我遵循指示,所以 首先,git克隆这个回购,然后运行:npm install python-js。 现在您已准备好运行服务器,运行:./run-demo.js,然后打开浏览器到localhost:8080。 不幸的是,我不能运行run-demo.js,因为我有这个错误 ————————— Windows Script Host ————————— Line: 1 Character: 1 Error: Invalid character Code: 800A03F6 Source: Microsoft JScript – compilation error 我尝试通过node.js控制台来运行,但只有“…”,没有任何事情发生。 这是run-demo.js的代码: #!/usr/bin/env node var fs = require('fs') //var pythonjs = require('../PythonJS/pythonjs/python-js') var pythonjs = require('python-js') var pycode = fs.readFileSync( './server.py', {'encoding':'utf8'} ) var jscode = pythonjs.translator.to_javascript( […]

zerorpc:如何将string数据从python转换为节点

我需要从nodejs中调用一个python脚本并获取结果。 我发现了似乎很适合的zerorpc库。 python脚本返回一个string数组,但在节点中我得到了二进制数据的对象。 这是pythonzerorpc服务器: # python zerorpc server import zerorpc class HelloRPC(object): def test(self): return ["A", "B", "C"] server = zerorpc.Server(HelloRPC()) serrver.bind("tcp://0.0.0.0:4242") server.run() 这是节点zerorpc客户端: // nodejs zerorpc client var zerorpc = require("zerorpc") var client = new zerorpc.Client(); client.connect("tcp://127.0.0.1:4242"); client.invoke("test", function(error, response, more) { if (response) { for (var i = 0; i < response.length; i++) […]

我怎样才能扩大findOneAndUpdatemongoose/ mongodb 500万更新?

我正在与这些后端工作:nodejs,mongoose,mongodb,ironmq。 还有另一个应用程序(一个python FTP服务器)被用作数据源。 这个系统或多或less是这样工作的: 用户上传一个csv的数据转储(近300万条)到FTP服务器(这是定期发生的,每24小时一次) FTP服务器parsing数据,并同步地批量推送到IronMQ队列(2000年)。 我在这里进行批处理来优化内存 另一个应用程序(nodejs)不断轮询该队列中的数据,每10秒钟发送100条消息(这是允许的最大数量),对这些数据起作用,然后更新我的数据库(对每个消息使用findOneAndUpdate )。 我有5个这些应用程序正在运行。 现在除了整个操作完成所需的时间之外,这个设置没有任何明显的问题。 parsing的数据完全被推送到MQ需要将近2个小时,但是这样做并不是什么大问题,因为它是分批完成的。 实际的问题出现在“保存/更新到数据库”部分。 平均而言,每小时在db中更新20-24K条目。 但是,由于我有300万条目,这是花了超过24小时(这是行不通的,因为FTP上的文件每24小时刷新一次,数据将用于在我的应用程序的其他部分执行某些操作)。 我不确定如何从这里继续,但我有几个问题。 我的上述方法可以被认为是最佳/有效的吗? 或者有什么可以改进的? 如何通过db或者通过改变devise来减less整个更新操作所花费的时间? mongodb是否认为这个案例是好的,还是有更好的select? 如果你能提供一些帮助,这将是非常棒的。 请让我知道,如果你们需要更多的信息。

Python urllib.unquote_plus node.js等效

我试图解码通过HTTP GET给出的一些数据,基本上是由Python编码的东西,我试图用Node解码。 Python : data = "0%0E%09-%FB%CD%989%2B%C0%E5%A2+%28%93%D9%C9%86r0%9C%8D+%F1%E3v%0C%9E%19%91%E3%06%01%FA%D5%5B%F3%3D7%10%23%E7%95S%B7%93%60%DB%1F%1F%8A%E3%5D%CC%95%B8%DA%DB%A3%18%9FoVzC%23%FCB%8D%86%86N9%BE%AE%98%13x%0D%D9u%C48%F6%AD%A3%19z%BE%DB%8E-%C4T%02P%06%D5%C1%21%1F%FB%9C%EB%0A%7C%F9XFB%9D%F3" print urllib.unquote_plus(data) 输出: 0 – ͘9+ ( Ɇr0 v u 8 z ێ- TP ! [ =7# S ` ]̕ ۣ oVzC# B N9 x | XFB 节点 : var token = '0%0E%09-%FB%CD%989%2B%C0%E5%A2+%28%93%D9%C9%86r0%9C%8D+%F1%E3v%0C%9E%19%91%E3%06%01%FA%D5%5B%F3%3D7%10%23%E7%95S%B7%93%60%DB%1F%1F%8A%E3%5D%CC%95%B8%DA%DB%A3%18%9FoVzC%23%FCB%8D%86%86N9%BE%AE%98%13x%0D%D9u%C48%F6%AD%A3%19z%BE%DB%8E-%C4T%02P%06%D5%C1%21%1F%FB%9C%EB%0A%7C%F9XFB%9D%F3'; console.log(unescape(_.replace(token, '+', '%20'))) _是Lodash图书馆。 请参阅https://lodash.com/docs/4.16.6#replace 输出: 0 -ûÍ9+Àå¢ (ÙÉr0+ñãv ÙuÄ8ö£z¾Û-ÄTPÕÁ!ûë ãúÕ[ó=7#çS·`Ûã]̸ÚÛ£oVzC#üBN9¾®x |ùXFBó 两个解码的输出看起来相似,但有点不同,我不明白为什么。 一旦解密(通过另一种algorithm),他们给出了类似的结果,但JS版本有意想不到的字符,如{"duration": 600m […]

通过spawn从python返回JSON

我有一个Python脚本,需要两个参数; 一个目录和一个文件名。 python脚本将从提供的目录中的特定文件中创build一个JSON对象,并将其作为第二个参数保存。 但是如果第二个参数等于string“stream”,则JSON数据被输出到STDOUT。 我编写了一个节点脚本,它生成一个subprocess,从terminal调用python脚本,并按预期工作。 "use strict"; const spawn = require("child_process").spawn; const command = "(path to python)"; const loc = "(path to .py script)"; const acct = process.argv[2]; const output = process.argv[3]; let callPy = spawn(command, ["erik.py", acct, output], { cwd: loc, stdio: "pipe" }); callPy.stdout.on("data", (data) => { if (data.toString() === "success") { console.log(acct, […]