标记为生成的活动问题-堆栈溢出 最近30次来自stackoverflow.com 2024-06-28T15:38:45Z https://stackoverflow.com/feeds/tag?标记名=派生&amp;sort=最新 https://creativecommons.org/licenses/by-sa/4.0/rdf https://stackoverflow.com/q/78666349 0 NodeJS child_process如何在子级之间同步AbortController Netlemon Opp公司 https://stackoverflow.com/users/25389025 2024-06-25T09:00:23Z 2024-06-25T09:01:01Z <p>我想通过<code>.download_sections.sh</code>脚本生成2个执行自己请求的子级。如果其中一个失败了,我也想把另一个孩子也打掉。这是我想到的,但由于某种原因,它不起作用,另一个孩子继续跑</p>(第页)<p>示例:我在youtube音频链接中引入了一个细微错误,获取视频的实用程序因以下错误而失败:</p><p>&quot;错误:子进程退出,代码为1&quot;然而,中止被触发,另一个子进程继续执行工作</p>导出consthandler=async()=&gt;{const节=&quot*0:00:00-0:00:30,*0:01:00-0:01:30&quot;;const abortController=新的abortController();const fetchOriginalVideo=`/脚本/download_sections.shhttps://www.youtube.com/watch?v=HGl75kurxok${sections}视频`;const fetchAuxiliaryAudio=`/脚本/download_sections.shhttps://www.youtube.com/watch?v=${sections}音频`;尝试{const[video,audio]=等待Promise.all([runInParallel(fetchOriginalVideo,中止控制器),并行运行(获取辅助音频,中止控制器),]);}捕获(错误){abortController.abort();console.error(并行执行期间的错误:,err);}最后{console.log(处理程序执行完成。);}};const runInParallel=(cmd:string,abortController:abortController)=&gt;新承诺((解决、拒绝)=&gt;{const[command,…argumentList]=命令.split(;console.log(命令);console.log(参数列表);let child=spawn(命令,参数列表{信号:abortController信号,});child.stdout.on(数据,(数据)=&gt;{console.log(`stdout:${data}`);});child.stderr.on(“数据”,(数据)=&gt;{console.log(`stderr:${data}`);});child.on(关闭,(代码)=&gt;{如果(代码===0)解析({});其他{abortController.abort();拒绝(new Error(`Subprocess exited with code${code}`);}});child.on(错误,(错误)=&gt;{abortController.abort();拒绝(错误);});});</code></pre> https://stackoverflow.com/q/75833561 1 克隆树被错误地旋转 世界1119 https://stackoverflow.com/users/13680873 2020年3月3日至24日12时18分10秒 2024-06-18T17:53:45 Z <p><a href=“https://streaable.com/8f579t“rel=”nofollow noreferrer“>显示我的问题的视频(流媒体)</A></p><p>我编写了一个插件脚本,它从“ReplicatedStorage/Trees”中随机选择一个树模型,然后克隆它并将其放置在3D世界中的单击点(在Roblox Studio Editor中,而不是在游戏中)</p>(第页)<p>问题似乎是树的位置不是笔直的——在我展示的视频中,即使在平坦的地形上,树也不会笔直地克隆。我尝试过:</p><ul><li><p>将CFrame角度设置为0、90或180等(我检查了所有轴),但树仍然没有向上旋转</p>(第页)<pre class=“lang-lua prettyprint-override”><code>局部旋转=C帧。角度(math.rad(0),math.rad(0),math.rad(0))生成树:枢轴到(位置*旋转)</code></pre></li><li><p>刚刚设置位置:</p>生成树:PivotTo(位置)</code></pre></li></ul><p><strong>与</strong>我使用名为<a href=“https://create.roblox.com/marketplace/asset/183435411/松树“rel=”nofollow noreferrer“>松树</a>-枢轴位置正确,方向和位置设置为<code>(0,0,0)</code></p><p>位于<code>工作区</code>中的整个脚本(非本地脚本),没有GUI代码:</p>本地NO_TREES_FOUND_ERROR=&quot;没有找到树&quot;本地NO_TREES_FOLDER_FOUND_ERROR=&quot;找不到“树”文件夹&quot;--标记日志本地标签=&quot;T地点:;--繁殖树本地函数spawnTree(position)local treeToSpawn=nil--要生成的最终树模型local randomInt—要选取的模型数本地存储=游戏:GetService(复制存储)--显而易见如果没有存储:FindFirstChild(Trees&quot;)然后--只需检查“Trees”文件夹是否存在显示错误(NO_TREES_FOUND_ERROR)--在GUI中警告(标记..&quot;找不到“Trees”文件夹!在ReplicatedStorage中创建此文件夹并将树放置在那里其他的local children=存储。树:GetChildren()如果#children==0,那么--如果存在“Trees”文件夹,请检查是否存在树模型显示错误(NO_TREES_FOUND_ERROR)--在GUI中警告(标签..&quot;找不到树!它们需要位于ReplicatedStorage/trees中其他的如果#children==1,则--如果只有一个模型,请选择“1”randomInt=1其他的local randomInt=math.random(1,#children)结束treeToSpawn=子项[randomInt]local SpawnedTree=treeToSpawn:克隆()--克隆树繁殖树。父级=工作区--添加到工作区局部旋转=CFrame。角度(math.rad(0)、math.rod(0)和math.rd(0))--设置旋转(无效)生成树:轴到(位置*旋转)--变换结束结束结束--获取鼠标点击位置local Mouse=插件:GetMouse()本地目标=零本地函数按钮1Down()target=鼠标。目标结束本地函数按钮1Up()if target==鼠标。目标和目标。姓名==&quot;地形;然后spawnTree(鼠标点击)结束结束本地ClickEventDown本地ClickEventUpClickEventDown=鼠标。按钮1向下:连接(按钮1向下)ClickEventUp=鼠标。按钮1以上:连接(按钮1以上)插件:激活(isConnected)</code></pre> https://stackoverflow.com/q/78628125 0 使用pty生成通过cmd运行另一个文件的进程时,在新的WindowsPtyAgent中找不到文件 什瓦伊沙玛 https://stackoverflow.com/users/25564080 2024-06-16T02:02:34Z年6月16日 2024-06-16T02:02:34Z年6月16日 <p>我正在开发一个带有电子框架的桌面应用程序,它总是打开一个终端,运行的进程的输出显示在该终端中。我正在使用node-pty进行此操作,但当我尝试使用生成进程传递要在cmd上运行的文件时,它只会给我以下错误,即找不到文件:<a href=“https://i.sstatic.net/D3TvSK4E.png“rel=”nofollow noreferrer“>在此处输入图像描述</a></p>主进程中发生JavaScript错误未捕获异常:错误:找不到文件:在新的WindowsPtyAgent上\节点模块\node-pty\lib\windowsPtyAgent.js:80:36)在新的WindowsTerminal\节点模块\节点-pty\lib\windowsTerminaI js:51:24)在Object.spawn\节点模块\node-pty\lib\indexjs:29:12)位于IpcMainlmpl&书信电报;匿名&gt;(main.js88:25)在IpcMainlmpl.emit(节点:事件:519:28在WebContents上&书信电报;匿名&gt;(节点:电子/js2c/browser_init:2:82388)位于WebContents.emit(节点:事件:519:28)</code></pre><p>文件在那里,它在没有pty的情况下工作</p>(第页)<p>最初,我希望cmd的输出会显示在我的shell进程中,该进程正在通过pty运行。我有一个pty进程,它一直用于一个终端,我尝试删除那个终端,改变它们被调用的顺序,但唯一有效的方法是删除pty,只使用派生进程,它给了我一开始所期望的正确结果。我希望所有结果只显示在同一个终端中,而不是另一个div中</p> https://stackoverflow.com/q/78541067 0 sh派生expect-在expect命令中处理多行 吉里·斯雷兰加姆 https://stackoverflow.com/users/3077874 2024-05-27T20:59:09Z 2024-05-27T21:47:00Z <p>我正在使用PGP加密对源文件进行加密。导入密钥后,每次运行脚本时,都会收到确认。但在生产中,我计划使用spawn和expect命令,这里的问题是,PGP加密命令提示使用特殊字符文本的多行。我尝试复制该文本并传入expect命令。尝试了正则表达式等选项,但没有成功。如果有人克服了这个问题,有什么建议吗?谢谢你的建议</p>(第页)<p>这是我的shell脚本</p>(第页)<pre><code>\usr\bin\expect-d&lt&lt;-!EXP&gt&gt/日志名2&gt&amp;1spawn/ur/bin/gpg--加密-r&lt;公钥&gt&书信电报;文件名&gt&gt&gt;日志名2&gt&amp;1睡眠1期望“;发布(&L);键&gt;IT安全(请通过电子邮件与我们联系&lt;its@abc.com&gt;主键指纹:339D O998子密钥指纹:F779 D999无法确定密钥是否属于指定的人如果你真的知道自己在做什么,你可以用“是”回答下一个问题。还是用这把钥匙吗?(是/否);睡眠1发送;是\r&quot;预期eof!经验</code></pre><p>问题在于预期文本。当我手动运行PGP时,会出现此文本提示。因此,必须在expect命令中复制相同的文本,并以“y”的形式发送响应</p>(第页) https://stackoverflow.com/q/78509585 0 NodeJS:无法将字节数组输入从网络摄像头写入ffmpeg生成进程 萨内什·普拉巴根(Thanesh Prabaghan) https://stackoverflow.com/users/23064262 2024-05-21T03:55:07Z 2024-05-23T13:37:55Z <p>我正在使用NodeJS服务器显示一个HTML页面,该页面具有网络摄像头选项。一旦用户访问了我的NodeJS服务器,它将提供html页面。用户可以允许网络摄像头选项,并在页面上查看网络摄像头视图</p>(第页)<p>在后端,我使用<code>socket.io</code>发送网络摄像头流(字节数组)。在<code>socket.io的帮助下,我在后端成功接收字节数组<strong>但我的问题是,我无法将这个字节数组通过管道发送到<code>ffmpeg</code>生成进程。我不知道如何将此数据通过管道正确传输到<code>ffmpeg</code></strong>一旦完成,我所有的问题都会解决</p>(第页)<p>另一方面,我使用<code>node-media-server</code>作为RTMP服务器,将此流发布到VLC播放器和其他设备。请帮我完成这项任务。我会把我所有的代码附加到这个问题上。请在您的环境中运行此程序并回答问题</p>(第页)<p>我的HTML页面</p><pre><code>&它;!DOCTYPE html&gt;&它;html&gt;&它;头部&gt;&它;标题&gt;照相机&lt/标题&gt;&它;风格&gt;#集装箱{边距:0px自动;宽度:500px;高度:375px;边框:10px#333实心;}#视频{宽度:500px;高度:375px;背景颜色:#666;}&它/风格&gt;&它;script src=&quot;https://cdn.socket.io/4.7.5/socket.io.min.js&quot; 完整性=;完整性代码;交叉原点=;匿名&quot&gt&它/脚本&gt;&它/头部&gt;&它;车身&gt;&它;div id=&quot;容器&quot&gt;&它;视频高度=&quot;1080英镑;宽度=;1024英镑;自动播放=&quot;真&quot;id=“;视频&gt;&它/视频&gt;&它;脚本&gt;const套接字=io('http://localhost:8080/');var video=文档.getElementById(视频);if(navigator.mediaDevices.getUserMedia){navigator.mediaDevices.getUserMedia({video:true,audio:true}).then(函数(流){const recorder=新的MediaRecorder(流);recorder.ondataavailable=事件=&gt;{socket.emit('VideoStream',event.data);};记录器启动(1000);video.srcObject=流;}).catch(函数(错误){console.log(出现问题!);});} &它/脚本&gt;&它/车身&gt;&它/html&gt;</code></pre><p>FFMPEG实现</p><pre><code>const express=require('express');const应用=表达式();const http=require('http');const服务器=http.createServer(应用程序);const{Server}=require(“socket.io”);constio=新服务器(服务器);const path=require('node:path');const{spawn}=require('node:child_process');let cmd=派生('ffmpeg.exe'['-c:v','copy','-preset','ultrafast','-tune','zerolatency',“-c:a”、“aac”、“-strict”、“-2”、“-ar”、“44100”、“-b:a”,“64k”,“-y”,“-use_wallclock_as_timestamps”,“1”,“-async”,“1”,“-flush_packets”,“1”,“-rtbufsize”,“1000”,“-bufsize”,“1000”,'-f','flv','-i','-','rtmp://localhost:1935',]);app.use(express.static(path.join(__dirname,“public”));app.get('/',(req,res)=&gt;{res.sendFile(路径联接(__dirname+'索引.html'));});io.on(“连接”,(插座)=&gt;{socket.on(视频流,(数据)=&gt;{cmd.stdin.write(数据);});});server.listen(8080,()=&gt;{console.log('登录*:8080');});```**节点媒体服务器实现**```const NodeMediaServer=require('node-media-server');常量配置={rtmp:{港口:1935年,chunk_size:60000,gop_cache:true,平:30,ping_timeout:60},网址:{端口:8000,allow_origin:“*”}};var nms=新NodeMediaServer(配置)nms.run();```</code></pre> https://stackoverflow.com/q/78499979 0 电子中的生育子过程 亚历克斯·克罗特克 https://stackoverflow.com/users/16163592 2024-05-18T14:08:03Z年 2024-05-18T14:08:03Z年 <p>我需要在electron(当前为MPV实例)中生成一个子进程。作为contextIsolation,我无法在渲染器中直接使用节点,但如果我理解正确,在预加载脚本中它应该可用,但可以编写:</p><p><code>从“child_process”导入child_pProcess</p><p>在preload.ts中,在控制台中引发错误:</p>VM39 sandbox_bundle:2错误:找不到模块:child_process预加载时需要(VM39沙盒绑定:2:82852)在&lt;匿名&gt;:3:23在运行PreloadScript时(VM39沙盒绑定:2:83516)在VM39沙盒绑定:2:83813在VM39沙盒绑定:2:83968电子webpack_init__(VM39沙盒绑定:2:83972)在VM39沙盒绑定:2:84095</code></pre><p>所以我尝试了另一种方法并使用了IPC。所以在renderer.ts中我写了</p><p>window.eleconAPI.spawn('/usr/bin/mpv',{})</p><p>在preload.ts中:</p><pre class=“lang-js prettyprint-override”><code>从“electron”导入{ipcRenderer,contextBridge}contextBridge.exposeInMainWorld(“电子API”{生成:(路径:字符串,选项:对象)=&gt;ipcRenderer.invoke('spawnApp',路径,选项)})</code></pre><p>以及在main.ts中</p><pre class=“lang-js prettyprint-override”>ipcMain.handle('spawnApp',(event,path,options)=&gt;{return child_process.spawn(路径,选项);})</code></pre><p>这是可行的,并且生成了子进程,但问题是,子进程引用无法返回到renderer.ts,因为它在控制台中引发错误:</p><pre><code>Uncaught(承诺中)错误:调用远程方法“spawnApp”时出错:错误:无法克隆对象</code></pre><p>正确的处理方法是什么</p>(第页)<p>电子30.x,节点20.x</p><p>我尝试了IPC方法和preload.ts方法</p> https://stackoverflow.com/q/78462585 0 为什么jupyter中心产卵器在启动期间失败 莫克塔尔·迪亚洛 https://stackoverflow.com/users/14861910 2024-05-10T21:17:54Z 2024-05-10T23:53:43 Z <p>我已经将jupyterhub/jupyterhub docker映像拉入本地计算机。当我启动它时,它会询问一个我不知道的用户名和密码。什么应该是默认的用户名和密码</p>(第页)<p>我尝试了用户名<code>admin</code>和密码<code>admin</code>,但都没用。我尝试了一个建议的stackoverflow答案,分别是<code>jovyan</code>和<code>jupyter</code],但都没有成功。最后,我尝试了另一个stackoverflow答案,建议猛击容器并在那里添加用户,但这是我得到的错误消息:</p><p><img src=“https://i.sstatic.net/0b50uLUC.png“alt=”jupyterhub启动错误消息“/></p> https://stackoverflow.com/q/78434172 0 东京::try_join!没有提前返回tokio::spawn处理程序 走到任何地方 https://stackoverflow.com/users/4829453 2024-05-06T00:55:39Z 2024-05-07T18:14:43 Z <pre><code>#[tokio::main]异步fn main()-&gt;io::结果&lt;()&gt;{// ...let handle1=tokio::spawn(异步移动{method1().await});let handle2=tokio::spawn(异步移动{method2().await});let handle3=tokio::spawn(异步移动{method3().await});let(handle1_ret,handle2_ret,handle3_ret)=东京::try_join!(把手1、把手2、把手3)?;匹配手柄1_ret{确定(_)=&gt;信息!(把手1关闭);错误(e)=&gt;错误!(handle1失败);}匹配handle2_ret{确定(_)=&gt;信息!(把手2关闭);错误(e)=&gt;错误!(handle2失败);}匹配句柄3_ret{好的(_)=&gt;信息!(手柄3关闭);错误(e)=&gt;错误!(handle3失败);}确定(())}</code></pre><p>东京::try_join</即使<code>method1出现错误,code>也会被卡住</p>(第页)<p>我想要的是,如果<code>method1或<code>method2或<code_method3出现任何错误,请使用tokio::try_join</代码>应该返回,然后程序应该关闭(其他正在运行的方法将终止)</p>(第页) https://stackoverflow.com/q/76130913 2 错误:在ChildProcess.spawn生成UNKNOWN(节点:internal/child_process:413:11) 科尔·纳尔逊 https://stackoverflow.com/users/20131626 2023-04-28T15:10:11Z 2024-05-06T21:27:27Z <p>最近,我尝试将Ionic与Angular结合使用,但不断出现以下错误:</p><pre><code>错误:生成UNKNOWN位于ChildProcess.spawn(节点:internal/child_process:413:11)位于Object.spawn(节点:child_process:757:9)在spawn(C:\Users\MyUsername\AppData\Roaming\npm\node_modules\@ionic\cli\node_modules\cross-spawn\index.js:12:24)产卵时(C:\Users\MyUsername\AppData\Roaming\npm\node_modules\@ionic\cli\node_modules\@onics\utils-subprocess\dist\index.js:173:12)在Subprocess.spawn(C:\Users\MyUsername\AppData\Roaming\npm\node_modules\@ionic\cli\node_modules\@onics\utils-subprocess\dist\index.js:146:16)位于Shell.spawn(C:\Users\Colio\AppData\Roaming\npm\node_modules\@ionic\cli\lib\Shell.js:151:24)异步AngularServeCLI.spawn(C:\Users\MyUsername\AppData\Roaming\npm\node_modules\@ionic\cli\lib\serve.js:345:19)异步AngularServeCLI.spawnWrapper(C:\Users\MyUsername\AppData\Roaming\npm\node_modules\@ionic\cli\lib\serve.js:321:20)在异步AngularServeCLI.serve(C:\Users\MyUsername\AppData\Roaming\npm\node_modules\@ionic\cli\lib\serve.js:311:9)异步AngularServeRunner.serveProject(C:\Users\MyUsername\AppData\Roaming\npm\node_modules\@ionic\cli\lib\project\angular\serve.js:117:9)PS C:\Users\MyUsername\OneDrive\Desktop\Projects\CurrentProject&gt;</code></pre><p>为了解决这个问题,我想尽了一切办法。显然我不应该这样做,因为现在它使用子进程传播到任何NPX命令。即NPX create-react-app ReactTestApp或ng new</p><p>我所尝试的:</p><ul><li>更改版本节点</li><li>将我的Ionic、Angular、NPM、Node版本与我的同事版本进行比较,他们可以做同样的事情,而且它对他们有效</li><li>重新安装Ionic、Angular、npm、react甚至Node&amp;NVM公司</li><li>为prodeject文件和独立版本的nvm中的所有文件夹和文件授予管理员权限</li><li>正在卸载我的病毒防护软件</li><li>以管理员身份从powershell运行命令</li></ul><p>我在Windows 11上,我使用VS代码</p><p>任何帮助都非常感谢,我会像鹰一样关注这篇文章</p>(第页)<p>更新:最终切换了计算机;解决方案&quot;这个问题</p> https://stackoverflow.com/q/78422424 1 Python:防止多重处理。当没有可用的shell/控制台时,从生成窗口执行池操作 羊毛81 https://stackoverflow.com/users/13395306 2024-05-03T02:20:58Z年5月3日 2024-05-03T02:20:58Z年5月3日 <h2>环境:</h2><p>Windows,Python 3.12</p><h2>问题摘要:</h2><p>我有一个使用<code>多处理的Python应用程序。池</code>以并行处理一组文件:</p><pre><code>proc_count=16多处理。池(proc_count)作为池:结果=pool.map_async(parse_func,logs)# ... result.get()的处理</code></pre><p>从命令行运行时,一切都很好(没有额外的窗口)</p>(第页)<p>但是,当应用程序在没有控制台的情况下启动时(从我们的启动程序,一个NodeJS-Electron应用程序,它生成带有<code>shell=False的子进程),每个进程都会弹出一个python.exe窗口(在本例中为<strong>16个窗口)</p>(第页)<p>我不想设置<code>shell=True;该应用程序有一个GTK4前端,除了应用程序的GUI之外,我不希望有控制台窗口</p>(第页)<p><strong>是否有任何公开的方法可以通过<code>多处理禁用窗口创建。池</code></strong></p><h2>无效之处:</h2><p>我曾尝试将初始化器函数传递给试图隐藏窗口的池,但没有效果:</p><pre><code>#测试显示结果=0#来自微软文档:如果该窗口以前被隐藏,则返回值为零。定义初始值设定项():窗口=win32gui。获取前景窗口()title=win32gui。GetWindowText(窗口)如果title.以('python.exe')结尾:结果=win32gui。ShowWindow(窗口,win32con.SW_HIDE)</code></pre><h2>什么起作用了(但很糟糕):</h2><p>我确实找到了一种方法,通过在多处理库中设置进程创建标志(通常设置为0)来实现这一点,但显然我正在寻找更好的解决方案</p>(第页)<p>根据修改后的PythonDir/Lib/multiprocessing/popen_spawn_win32.py:</p><pre><code>,打开(wfd,'wb',closefd=True)为to_child:#启动过程尝试:CREATE_NO_WINDOW=0x0800000#&lt;--我的临时黑客hp,ht,pid,tid=winapi。创建进程(python_exe,命令,无、无、假、CREATE_NO_WINDOW、env、无、无)#&lt;--dwCreationFlags之前为0</code></pre> https://stackoverflow.com/q/78422012 0 可执行文件名使用windowsVerbatimArguments=true@node-child-process-spawn(Win32)获取参数 CSeitel公司 https://stackoverflow.com/users/13520523 2024-05-02T22:44:37Z 2024-05-02T22:44:37Z <p>以下是一个bug还是一个功能</p>(第页)<p>可执行文件C:\Program的第二部分将成为生成命令的第一个参数</p><pre><code>require('child_process').sawn('C:\\Program Files\\Notepad++\\Notepad++.exe',['&quot;a b.txt;'],{windowsVerbatimArguments:true})</code></pre><p>例如,记事本++试图打开路径为&lt;的文件<em>工作目录</em>&gt&quot\<em><strong>文件\记事本++\Notepad++.exe</p>(第页)<p>将可执行文件括在引号中</p><pre><code>require('child_process').sawn('&quot;C:\\Program Files\\Notepad++\\Notepad++.exe;',['&quot;a b.txt;'],{windowsVerbatimArguments:true})</code></pre><p>将为可执行文件生成ENOENT</p>(第页)<p>作为解决方法,您可以使用<strong>PROGRA~1</strong>for&quot<em>程序文件</em>“</p>(第页)<pre><code>require('child_process').sawn('C:\\PROGRA~1\\Notepad++\\Notepad++.exe',['&quot;a b.txt;'],{windowsVerbatimArguments:true})</code></pre> https://stackoverflow.com/q/78402392 0 如何避免从python打印方法到节点js应用程序的字符串截断 拉杰什·库马尔 https://stackoverflow.com/users/2853298 2024-04-29T11:30:49Z年4月29日 2024-04-29T12:04:37Z年4月29日 <p>我从节点JS应用程序运行一个python脚本</p><pre><code>const{spawnSync}=require('child_process');const pythonProcess=等待spawnSync(python3[脚本文件路径,“methodNameToExecute”,路径列表.toString()]);const result=pythonProcess.stdout?。toString()?。trim();</code></pre><p>python脚本在这里运行良好,并将预期的字符串输出从python打印方法输出到here-in结果变量。但当结果太长时,我会得到被截断的字符串结果。请指导我如何获取完整字符串,即使字符串太大。请指导在将字符串从python传递到节点应用程序时是否存在任何限制</p>(第页) https://stackoverflow.com/q/78371197 0 尽管在Windows上成功执行,但在macOS上的Electron-React应用程序中执行Python可执行文件时出现问题 尼哈·乔希 https://stackoverflow.com/users/24599977 2024-04-23T09:19:13Z 2024-04-23T10:40:18Z年4月23日 <p>当我试图在macOS上的Electron-React应用程序中使用spawn()方法执行Python可执行文件时,我遇到了一个意外的挑战。以下代码段在Windows上执行平稳,但在macOS上,它无法启动,并且没有任何附带的错误消息:</p><pre><code>ipcMain.on('open-python',(event,params)=&gt;{尝试{log.info('从python应用程序的主进程记录');const amePath=python可执行路径;log.info('AMEPATH:',AMEPATH);const ameProcess=派生(amePath,参数{分离:true,stdio:'忽略',外壳:true,编码:'utf8',});ameProcess.unref();log.info('eprocess completed successfully');}捕获(错误){log.error('生成Python进程时出错:',error);}});</code></pre><p>尽管确保所有路径和参数都正确,但该过程似乎并没有在macOS上启动。我已经确保没有错误消息,但过程根本没有开始</p>(第页)<p>有人能解释一下为什么会发生这种情况吗?是否有任何我忽略的平台特定考虑因素可以解释这种行为?如有任何关于故障排除的见解或建议,我们将不胜感激</p>(第页)<p>我还尝试过使用execFile函数,但遇到了类似的问题</p>(第页) https://stackoverflow.com/q/78128204 0 如何在typescript中使用NodeJS child_process? 反物质 https://stackoverflow.com/users/6445309 2024-03-08T14:02:52Z 2024-04-12T00:27:33Z <p>当我尝试在交互模式下执行child_process<code>spawn</code>节点时,它可以工作,没有问题<br/>例如:</p><pre><code>节点-i&gt;const{spawn}=require('node:child_process');&gt;产卵(&quot;ls;,[&quot,-lah;]);</code></pre><p>创建了一个子进程,一切正常</p>(第页)<p>当我尝试在typescript中使用child_process时,如</p><pre><code>。。。从导入派生;节点:child_process&quot;;...产卵(&quot;ls;,[&quot,-lah;]);</code></pre><p>它不起作用</p><p>VSCode突出显示最后一行<code>spawn(…)</code>,并显示错误消息</p><pre><code>此表达式不可调用。类型“typeof import(node:child_process&quot;)”没有调用签名。</code></pre><p>当我构建代码时,我得到了相同的消息</p><pre><code>src/main.ts:20:3-错误TS2349:此表达式不可调用。类型“typeof import(node:child_process&quot;)”没有调用签名。</code></pre><p>无论我尝试在<code>spawn(…)</code>中调用哪个命令,我都尝试了几个,总是出现相同的错误<br/>如何在typescript中正确使用child_process</p>(第页) https://stackoverflow.com/q/78289429 1 如何消亡和生成模型 特内克尼 https://stackoverflow.com/users/16443042 2024-04-07T21:57:49 Z 2024-04-08T03:46:58Z <p>我正在为我正在进行的项目制作一个小的点击片段。有目的地做一些简单易行的事情。我的目标基本上是一款第一人称PoV 3D游戏,你不需要离开现场,而是在房间之间移动,并与NPC互动</p>(第页)<p>进入房间后,您应该找到NPC(非常容易)并单击它们。导致NPC消失,然后在镜头前重生</p>(第页)<p>这就是我的问题。我似乎找不到任何好的资源或指导(或想法),关于如何消亡/生成模型。想法很简单:</p><p>基本纯编程开发阶段截图:<a href=“https://i.sstatic.net/XmUXA.png“rel=”nofollow noreferrer“><img src=”https://i.sstatic.net/XmUXA.png“alt=”屏幕截图“/></a></p><p>单击远处的模型(蓝色圆柱体)。蓝色圆柱体消失/停止工作。然后相机正前方的蓝色圆柱体生成/激活</p>(第页)<p>然后,球员应该能够做同样的事情,但反过来。(阿卡,点击玩家面前的模型,模型消失,前一个模型返回)</p><p>老实说,我真的没有取得任何进展。我尝试过寻找产卵或去毛等的来源,但我发现几乎所有的来源都只从产卵障碍或重复多次或随机产卵的角度来谈论它。我似乎找不到任何可靠的东西来追求。(也许只有我找不到我要找的东西)</p> https://stackoverflow.com/q/77943073 1 带pexpect的Darknet多线程 Stefan奇异性99 https://stackoverflow.com/users/22240790 2024年2月5日上午8:01:54分 2024-04-07T04:19:17分 <p>我正在尝试使用Darknet和Pexpact对4个图像进行并行处理。当前的实现与此测试类似。检测一幅图像需要70毫秒,而并行检测4幅图像需要300毫秒。我做错了吗,或者我需要1GPU以上的处理器来进行处理</p>(第页)<pre><code>类Darknet:定义__init__(自身):self.instance=pexpect.sawn(f'darknet检测器测试{config.OBJ_DATA}{config.YOLOV3}{config/WIGHTS}-ext_output-dont_show')self.instance.delaybeforesend=无self.instance.delayafterread=无self.instance.expect('输入图像路径:')self.available=正确def进程(self,image_name):self.instance.sendline(图像名称)self.instance.expect('毫秒',超时=600)self.instance.expect('输入图像路径:',超时=600)输出=self.instance.beforelogging.info(输出)回流输出类PexpectPerformanceTest(unittest.TestCase):def test_pect_speed(自身):图像路径=/app/tmp/training_set/125_20231113_100730_609_3.jpg”;darknet_instance_1=简单标记线程(darknet(),图像路径)darknet_instance_2=简单DarknetThread(darknet(),图像路径)darknet_instance_3=简单DarknetThread(darknet(),图像路径)darknet_instance_4=简单标记线程(darknet(),图像路径)darknet_instance_1.start()darknet_instance_2.start()darknet_instance_3.start()darknet_instance_4.start()darknet_instance_1.join()darknet_instance_2.join()darknet_instance_3.join()darknet_instance_4.join()打印(深色1输出:{Darknet_instance_1.output}打印(深色2输出:{Darknet_instance_2.output}打印(f“暗网3输出:{Darknet_instance_3.output}”)打印(深色4输出:{Darknet_instance_4.output}类SimpleDarknetThread(threading.Thread):定义__init__(自我、暗网、映像路径):super()__初始化_()self.darknet=暗网self.image_path=图像路径self.output=无定义运行(自身):start_time=时间.time()self.output=self.darknet.process(self.image_path)打印(所需时间:{(time.time()-start_time):.2f}s&quot;)如果__name__==&quot;主“:unittest.main()</code></pre> https://stackoverflow.com/q/44161639 0 Node.js生成显示STDOUT实时不工作 用户1086010 https://stackoverflow.com/users/1086010 2017年5月24日T14:40:14Z 2024-03-30T23:39:29Z <p>我有一个应用程序,它接收文件链接并下载它们,下载时我使用aria2c</p>(第页)<p>为此,我首先使用了<code>exec</p><p>以下是我使用aria2c下载文件的代码:</p><pre><code>“使用严格”;常数spawn=require('child_process').sawn,aria2c=生成('aria2c',['-x8','https://wa-us-ping.vultr.com/vultr.com.100MB.bin网址' ] );aria2c.stdout.on('data',data=&gt{console.log(`stdout:${data}`);});aria2c.stderr.on(“数据”,data=&gt{console.log(`stderr:${data}`);});aria2c.on('关闭',code=&gt{console.log(`子进程退出,代码为${code}`);});</code></pre><p>当我运行此代码时,它不会将aria2c输出打印到stdout,它只在下载完成时显示它</p>(第页)<p>我想知道如何解决这个问题</p>(第页) https://stackoverflow.com/q/77803827 0 Nodejs Spawn无法处理手动工作的js文件 随机代码人员 https://stackoverflow.com/users/2322720(网址:https://stackoverflow.com/users/2322720) 2024-01-12T00:58:41Z 2024-03-27T16:16:45Z <p>好的,我有一个主应用程序,它从这个express服务器运行一个express服务器,我有个端点,它接受带有id的get请求</p><p>当用户请求此端点时,将运行一个函数以生成一个分离的进程,该进程接受id作为arg,然后开始在后台下载文件列表</p><p>现在我的下载器js文件工作得很好,如果我从终端手动运行它,并使用</p><pre><code>节点下载器argid</code></pre><p>它输出所有正确的内容,然后下载所有内容</p><p>但当我尝试在主脚本中使用以下代码运行相同的下载程序文件时</p><pre><code>downloaderSpawn(){const nodeBinary='/usr/bin/node';const childScriptPath='/home/ebo/downloader.js';const logFilePath=`/home/ebo/${this.id}/logfile.txt`;const命令=`${nodeBinary}${childScriptPath}${this.id}${this.key}&gt${logFilePath}2&gt&amp;1`;const childProcess=exec(命令);childProcess.stdout.on('data',(data)=&gt;{console.log(`子脚本输出:${data}`);});childProcess.stderr.on('data',(data)=&gt;{console.error(`子脚本错误:${data}`);});childProcess.on('关闭',(代码)=&gt;{console.log(`子进程退出,代码为${code}`);});}</code></pre><p>我试过使用和不使用<code>&gt${logFilePath}2&gt&amp;1</code>选项创建日志文件,但从未使用下载程序的输出填充,该输出告诉我脚本从未运行过</p><p>这个函数来自于一个更大的类中,除了这个函数之外,这个类中的所有其他东西都可以正常工作,正如前面所述,下载器js文件在单独调用时也可以正常工作</p><p>我现在不得不使用ubuntu20,因为这是客户端提供的,ubuntu20repo中节点的版本似乎是18.19.0</p><p>我尝试过使用exec和spawn,也尝试过使用</p><pre><code>const childProcess=spawn(命令{外壳:true,分离:true,stdio:“ignore”,//如果不需要,也可以忽略stdio});</code></pre><p>我在主脚本控制台或日志文件中得到0个错误或任何类型的输出,它被设置为重定向到</p><p>编辑:我已升级到节点版本21,但仍然存在相同的问题,子脚本似乎根本无法从spawn/exec运行</p> https://stackoverflow.com/q/78224169 1 创建Expo CLI应用程序中的“错误:spawn npm ENOENT” 丽斯 https://stackoverflow.com/users/4678255 2024-03-26T09:19:40Z 2024-03-26T09:45:21Z <p>帮助我解决在尝试创建一个反应式本地应用程序时遇到的问题。这是我在尝试使用命令创建应用程序时遇到的错误<code>npx create-expo-app</code></p>下载和提取项目文件时出错:spawn npm ENOENT错误:生成npm ENOENT节点:内部/验证器:95throw new ERR_INVALID_ARG_TYPE(name,'number',value);^类型错误[ERR_INVALID_ARG_TYPE]:;代码&quot;参数的类型必须为number。接收的类型字符串('NOENT')在process.set[作为exitCode](节点:internal/bootstrap/node:123:9)在process.exit(节点:internal/process/per_thread:187:24)位于/Users/macpro/.npm/npx/a712338f43e79bae/node_modules/create-expo-app/build/index.js:77:736在&lt;匿名&gt;在process.processTicksAndRejections(节点:internal/process/task_queues:95:5)异步运行时(/Users/macpro/.npm/npx/a712338f43e79bae/node_modules/create-expo-app/build/index.js:77:704){代码:'ERR_INVALID_ARG_TYPE'}</code></pre> https://stackoverflow.com/q/78215269 -2 有可能在一个单独的线程中启动这个工作线程而不是阻塞主线程吗? 弗雷德·霍斯 https://stackoverflow.com/users/10088259 2024-03-24T16:30:47分 2024-03-25T15:28:28Z <p>我有一个Rust应用程序,它基本上是一个带有一些路由的axum web服务器</p>(第页)<p>但现在我需要定期检查数据库表中是否有一些新行</p>(第页)<p>如果有,我需要做一些可以持续几分钟的繁重计算(尤其是在一个尺寸过小的码头集装箱中)</p>(第页)<p>我使用的代码如下,输出为:</p><pre><code>不应阻塞主线程,应每秒打印一次:即时{t:6479.5889821s}不应阻塞主线程,应每秒打印一次:Instant{t:6480.5996495s}不应阻塞主线程,应每秒打印一次:即时{t:6481.6152853s}正在启动大量CPU计算。。。不应阻塞主线程,应每秒打印一次:Instant{t:6502.5748215s}不应阻塞主线程,应每秒打印一次:Instant{t:6503.5917731s}主线程不应被阻塞,应每秒打印一次:Instant{t:6504.5990575s}</code></pre><p>正如您可以看到的,启动大量CPU计算</code>阻塞主线程</p>(第页)<p>有办法避免这种情况吗?也许可以对每项繁重的任务使用<code>tokio::task::spawn_blocking()</code></p>(第页)<p>我可以开始整个过程吗;工人&quot;在单独的线程中?因为我有很多不同的工作</p>(第页)<p>我是指<code>main()中的代码:</p><pre class=“lang-rust prettyprint-override”><code>let worker=Queue::new();tokio::spawn(异步移动{worker.run().await});//有没有办法在单独的线程中启动它?</code></pre><p>代码在这里:<a href=“https://play.rust-lang.org/?version=stable&amp;模式=调试;版本=2021;gist=ce6ce5475c5cb98e97e0595a23986c5e“rel=”nofollow noreferrer“>铁锈运动场</a></p><p>或者在这里:<a href=“https://www.rustexplorer.com/b/2tdz8m“rel=”nofollow noreferrer“>Rust Explorer</a></p><p>或者在这里:</p><pre class=“lang-rust prettyprint-override”><code>使用期货::StreamExt;使用rand::Rng;使用std::time::{Duration,Instant};常量一致性:usize=5;struct作业{编号:u16,}结构队列{//一些需要的字段,如DB连接}impl队列{fn新()-&gt;自我{自我{}}异步fn运行(&amp;self){回路{//我会在这里从DB找工作;这个演示是随机生成的let mut作业:Vec&lt;作业&gt;=Vec::new();对于0..2中的_{jobs.push(作业{id:get_random_id(),})}futures::stream::iter(作业).for_each_concurrent(CONCURRENCY,|job|async{匹配self.handle_job(作业).await{确定(_)=&gt;{//我将从队列中删除作业}错误(_)=&gt;{//我会处理这个错误}};}).等待;tokio::time::sleep(持续时间::from_secs(5)).await;}}异步fn handle_job(&amp;self,job:job)-&gt;结果&lt;(),字符串&gt;{如果job.id%2==0{打印!(开始大量CPU计算…);//我正在用这个睡眠线程阻塞来模拟大量CPU计算std::thread::sleep(持续时间::from_secs(10));//我想我可以改用spawn_blocking,对吗?//tokio::task::spawn_blocking(移动||{//std::thread::sleep(持续时间::from_secs(8));//}).await.unwrap()}确定(())}}#[东京::main]异步fn main(){让worker=队列::new();//我可以在单独的线程中启动下面的worker.run()吗?tokio::spawn(异步移动{worker.run().await});回路{打印!(&quot;不应阻止主线程,应每秒打印一次:{:?}&quot;,即时::now());tokio::time::sleep(持续时间::from_secs(1)).await;}}fn获取随机id()-&gt;u16型{让mut-rng=rand::thread_rng();rng.gen::&lt;u16&gt;()}</code></pre> https://stackoverflow.com/q/76429170 1 将nodejs中的生成进程执行时间从秒减少到毫秒 公共电话 https://stackoverflow.com/users/1539757 2023-06-08T06:33:57Z 2024-03-22T21:36:48Z <p>我想在Node js应用程序中执行python代码,所以我在下面使用了</p><pre><code>const{spawn}=require('node:child_process');const进程=spawn('node',['-c',&quot;python代码内容将出现在这里;process.stdout.on('data',(data)=&gt;{console.log(`stdout:${data}`);});</code></pre><p>它按预期工作,但在<strong>stdout中打印输出大约需要几秒钟,一些python脚本会返回大量数据,所以我使用了<strong>process.stdout</p><p>现在我主要关心的是时间,如何减少这个时间,这个时间应该是毫秒,但执行和打印输出需要几秒钟</p>(第页) https://stackoverflow.com/q/78099685 0 shell错误解释child_process.spawn的unicode参数 阿里·塔瓦科尔 https://stackoverflow.com/users/1994239 2024-03-04T07:56:01Z 2024-03-04T07:56:01Z <p>一个简单的C++<code>test_program</code>打开由<code>argv[1]</code>指定的文件进行读取:</p><pre class=“lang-cpp prettyprint-override”><code>#include&lt;fstream&gt;#包括&lt;iostream&gt;int main(int argc,char*argv[]){for(int i=0;i&lt;argc;i++)标准::cout&lt&它&quot;argv[&quot;&lt;i&lt;&gt;]:&它&书信电报;argv[i]&lt&“lt;”\n’;标准::ifstream-ifs;ifs.open(argv[1],标准::ifstream::in);if(!ifs.is_open()){标准::cerr&lt&它&quot;无法打开文件\n&quot;;返回1;}返回0;}</code></pre><p>nodejs模块用一个参数调用它:</p><pre class=“lang-js prettyprint-override”><code>let spawn=require(child_process&quot;).sawn;module.exports.test=(文件)=&gt;{return new Promise(函数(resolve,reject){让bat=生成(C:\\test_program&quot;,[file]);bat.stdout.on(数据,(数据)=&gt;console.log(`stdout:${data}`));bat.stderr.on(数据,(e)=&gt;console.log(`stderr:${e}`);bat.on(错误,(e)=&gt;console.log(`错误:${e}`));bat.on(退出,(代码)=&gt;{console.log(`退出代码:${code}`)resolve()});bat.stdin.end()})}</code></pre><p>调用命令:</p><pre><code>节点-e〃;require('./main').test('C:\\test.txt').then(()=&gt;{})&quot;</code></pre><p>按预期打印:</p><pre><code>argv[0]:C:\test_programargv[1]:C:\test.txt退出代码:0</code></pre><p>问题是,如果我使用包含阿拉伯字符的路径调用,它将无法工作:</p><pre><code>节点-e&quot;require('./main').test('C:\\ثɃ.txt').then()=&gt;{})&quot;</code></pre><p>打印意外结果:</p><pre><code>argv[0]:C:\test_programargv[1]:C:\????。文本&lt;---看到这个变化argv[2]:C:\test.txt&lt;---此参数由shell添加口译后并将所有文件放入路径C:\????的匹配模式????。文本stderr:无法打开文件退出代码:1</code></pre><p>如何解决这个问题</p>(第页)<p>注意:此行为发生在Windows操作系统中。linux工作正常</p>(第页) https://stackoverflow.com/q/78090911 0 带有python的Electron在打包后无法运行 蟒蛇12492 https://stackoverflow.com/users/20163053 2024-03-01T23:25:11Z 2024-03-01T23:25:11Z <p>我正在打包一个在本地运行Flask服务器的Electron桌面应用程序。每当我尝试运行从项目创建的独立应用程序时,我都会收到以下错误。当我使用npmrun运行项目时,我没有收到这个错误,后端工作得很好。这个错误是最近发生的,到目前为止,带有后端的python运行得很好。任何帮助都将不胜感激</p>(第页)<pre><code>未捕获异常:错误:生成python3.11 ENOENT位于ChildProcess_handle.onexit(节点:internal/child_process:286:19)onErrorNT(节点:内部/child_process:484:16)在process.processTicksAndRejections(节点:internal/process/task_queues:82:21)</code></pre><p>JS代码</p><pre><code>app.whenReady().then()=&gt;{const expressProcess=派生('python3.11',[path.join(__dirname,'server','test.py')]);expressProcess.stdout.on('data',(data)=&gt;{console.log(`烧瓶输出:${data}`);});expressProcess.stderr.on('data',(data)=&gt;{console.error(`烧瓶错误:${data}`);});应用程序锁定(&amp;D)&amp;app.dock.setIcon(路径加入(__dirname,'images','Logo.png'));创建窗口();});</code></pre> https://stackoverflow.com/q/7632470 2 NodeJS child_process.spawn stdout删除进度条(stdio“inherit”不符合要求) 只有我一个人 https://stackoverflow.com/users/21328775 2023-03-03T22:45:46Z 2024-02-12T10:48:48分 <p><strong>我在做什么:</strong>我创建了一个API端点,它通过NodeJS模块spawn函数执行npx create-react-app项目名称。这非常有效</p>(第页)<p>此外,我还创建了另一个API端点,该端点将根据需要获取上述API的当前进度。我已经成功地从生成的子元素中获取了stdout文本并将其保存。当调用API时,我将返回最新保存的stdout</p>(第页)<p><a href=“https://i.sstatic.net/YiwXx.png“rel=”nofollow noreferrer“>用作进度更新的stdout文本示例</a></p><p>(1) 在C:\examplep\htdocs\codeformula\build\myproject中创建一个新的React应用程序</p>(第页)<p>(2) 安装软件包。这可能需要几分钟</p>(第页)<p>(3) 使用cra-template安装react、react-dom和react-scripts</p>(第页)<p>上面的第3点大约需要5分钟才能完成,在终端中有一个漂亮的进度条</p>(第页)<p><strong>我努力实现的目标我想把手放在<code>进度条</code>上,并将其转换为<code>%value</code>,以便我可以显示%value和文本。<a href=“https://i.sstatic.net/240P9.png“rel=”nofollow noreferrer“>澄清我要做的事情</a></p><p><strong>问题:</strong>当使用<code>{stdio:&quot;inherit&quot;}</code>作为派生选项时,<code>进度条</code>似乎是通过<code>另一个流</code>传递的,但我无法拦截、操作和存储进度条%(或者更确切地说,我不知道是否可以拦截stdio:&quot;inherit&quot;)。<a href=“https://i.sstatic.net/BqWbz.png“rel=”nofollow noreferrer“>我指的进度条</a></p><p><strong>我尝试了什么:</strong>我曾尝试过使用<code>exec</code>、<code>spawn</code>with<code>pipe</code]、<code>wrapped callback functions</code>、<code>child.stdout.on</codeneneneef和<code>hild.stderr.on</code>,并且进度条似乎从这些方法中剥离出来。我没有主意,正在寻找答案或一些灵感或其他方法来实现上述目标</p>(第页) https://stackoverflow.com/q/77819726 2 为什么此Elixir脚本在完成其工作之前退出? 约翰·史密斯 https://stackoverflow.com/users/11422610 2024-01-15T12:17:14Z 2024-01-17T07:39:08Z <p>我在Elixir脚本中编写了一个模块SC,<code>wget.exs</code>。模块<code>SC</code>使用Erlang的<a href=“https://www.erlang.org/doc/man/os“rel=”nofollow noreferrer“>OS模块</a>执行复杂命令并在屏幕上打印其输出。我使用脚本中的模块使用<code>wget一次下载多个包:</p><pre><code>#/usr/bin/env长生不老药定义模块SC do定义运行(cmmnd)do输出=:os.cmd(String.to_charlist(cmmnd))IO输出结束结束defmodule下载程序dodef下载包dolst_f_pckgs=&quot;wget-list-systv&quot;#系统.cmd(wget,[&quot;https://www.linuxfromscratch.org/lfs/view/stable/#{lst_f_packgs}&quot;])SC.run(“wget-c”)https://www.linuxfromscratch.org/lfs/view/stable/#{lst_f_packgs}&quot;){:ok,file_content}=文件.read(lst_f_packgs)arr_f_pckgs=字符串.split(file_content,~r/\s+/)任务=arr_f包装|&gt;枚举映射(fn l-&gt;#Task.async(fn-&gt;System.cmd(“wget”,[l])结束)Task.async(fn->SC.run(“wget-c#{l}”)端)结束)任务|&gt;枚举.each(&amp;Task.await/1)IO输出;所有这些都已下载&quot;结束结束Downloader.download_packages()</code></pre><p>该脚本的目的是首先下载一个包含要下载的包列表的文本文件,这部分脚本工作正常,然后继续并行下载所有包。当使用我的模块<code>SC</code>时,脚本开始下载,但随后退出,我得到以下输出:</p><pre><代码>5550K。。。。。。。。。。98%1160万0s5600K。。。。。。。。。。99%457K 0s5650K。。100%145M=8.1秒2024-01-15 13:38:05(702 KB/s)-“coreutils-9.3.tar.xz”已保存[508696/5808696]--2024-01-15 13:37:56-- https://github.com/systemd/systemd/archive/v254/systemd-254.tar.gz正在解析github.com(github.com)。。。140.82.121.3正在连接到github.com(github.com)|140.82.121.3|:443…已连接。已发送HTTP请求,正在等待响应。。。找到302个位置:https://codeload.github.com/systemd/systemd/tar.gz/refs/tags/v254[以下内容]--2024-01-15 13:37:56-- https://codeload.github.com/systemd/systemd/tar.gz/refs/tags/v254正在解析codeload.github.com(codeload.github.com)。。。140.82.121.10正在连接到codeload.github.com(codeload.githhub.com)|140.82.121.10|:443…已连接。已发送HTTP请求,正在等待响应。。。200正常长度:未指定[application/x-gzip]保存到:“systemd-254.tar.gz”0K。。。。。。。。。。26.7万50K。。。。。。。。。。2720万100K。。。。。。。。。。442K个150K。。。。。。。。。。202K个[许多类似行]810万英镑6200K。。。。。。。。。。97%3170万0s6250K。。。。。。。。。。98%148M 0s6300K。。。。。。。。。。98%70万0s6350K。。。。。。。。。。99%573万0s6400K。。。。。。。100%460M=10秒2024-01-15 13:38:07(639 KB/s)-“grub-2.06.tar.xz”已保存[6581924/6581924]**(退出)退出位置:Task.await(%Task{mfa:{:erlang,:apply,2},owner:#PID&lt;0.96.0&gt;,PID:#PID&#lt;0.110.0&gt;;,ref:#Reference&lt;0.1214714622.3043557380.75212&gt;},5000)**(退出)超时(elixir 1.14.0)lib/task.ex:830:task.await/2(elixir 1.14.0)lib/enum.ex:975:枚举&quot-每个/2列出^foreach/1-0-&quot/2wget.exs:28:download_packages/0下载程序</code></pre><p>然而,如果我使用Elixir的<code>System模块,脚本会完成它的工作并打印</code>&quot;所有这些都已下载&quot;`显示在屏幕上</p>(第页) https://stackoverflow.com/q/77821417 0 为什么spawnSync执行命令时后台运行命令的“&”不起作用 米兰 https://stackoverflow.com/users/21980003 2024-01-15T17:28:18Z 2024-01-16T11:42:51Z <p>我正试图通过<code>spawnSync</code>执行shell脚本,其中我需要在后台运行其中一个命令&amp&quot;似乎只是被忽视了</p>(第页)<p>我的代码:</p><pre><code>spawnSync(`echo;***开始运行startServer***结束{stdio:[忽略,管道,继承],编码:&quot;utf-8;,外壳:true,});</code></pre><p>由于某种原因,命令<code>startServer</code>不会在后台执行,因此第二个echo命令永远不会执行</p>(第页)<p>注意:当我直接从bash运行上面的脚本时,它正在按预期运行</p>(第页)<p>编辑:稍微澄清一下:</p><ul><li>命令<code>startServer</code>将永远运行,因为它正在为服务器提供服务,所以在正常情况下不会返回。因此,我需要在后台运行</li><li>最初,我有一个标准的shell脚本(见下文),它按预期工作。我认为我可以用<code>spawnSync</code>执行更多/更少的相同脚本,但它的行为不同</li></ul><pre><code>一些命令一些命令npm运行startServer;一些命令....</code></pre> https://stackoverflow.com/q/41807217 2 node.js child_process#生成绕过stdin/stdout内部缓冲区 杰雷米·波耶 https://stackoverflow.com/users/2447471 2017年1月23日13:11:13Z 2024-01-04T05:23:10Z <p>我使用<code>child_process#spawn通过node.js使用外部二进制文件。每个二进制搜索根据语言在字符串中搜索精确的单词,并根据输入文本生成输出。它们没有内部缓冲区。用法示例:</p><ul><li><code>echo“我是一个随机输入”|/my-english-binary生成文本,如<code>单词X在句子中</li><li><code>cat/dev/uradom|/my-english-binary生成无限输出</li></ul><p>我想将这些二进制文件中的每一个都用作“服务器”。我想在遇到以前从未找到的语言后启动一个新的二进制实例,必要时用stdin.write()向其发送数据,并用stdout.on('data')事件直接获取其输出。问题是,在将大量数据发送到stdin.write()之前,不会调用stdout.on('data')。stdout或stdin(或两者)可能具有内部阻塞缓冲区。。。但我希望尽快输出,因为否则,程序可能会等待数小时才能显示新输入并解锁stdin.write()或stdout.on('data')。如何更改其内部缓冲区大小?或者我可以使用另一个非阻塞系统吗</p>(第页)<p>我的代码是:</p>const spawn=require('child_process').sawn;const path=require('path');类驱动程序{构造函数(){//每种语言有一个二进制this.instances=当前位置={frFR:{实例:null,路径:path.join(__dirname,'./my-french-binary')},英国国家标准局:{实例:null,路径:path.join(__dirname,'./my-english-binary')}}};//这个函数只检查一个实例是否正在为一种语言运行正在运行(lang){if(this.instances[lang]===未定义)throw new Error(“TreeTagger不支持语言:”+lang);return this.instances[lang].instance!==无效的;}//根据语言启动二进制文件,并将函数“onData”附加到stdout.on(“data”)事件运行(lang,onData){const-instance=spawn(this.instances[lang].path,{cwd:__dirname});instance.stdout.on('data',buf=&gt;onData(buf.toString()));//如果二进制实例被终止,它将在稍后重新启动instance.on('关闭',()=&gt;this.instances[lang].instance=null);this.instances[lang].instance=实例;}/***无限期写入instance.stdin()*我想通过向stdin写入一次来避免这种行为*但如果我只写一次,stdout.on('data')就永远不会被调用*如果我使用stdin.end(),一切都会正常,但我不想使用它*/写入(语言,文本){const id=setInterval(()=&gt;{console.log('setInterval');this.instances[lang].instance.stdin.write(text+'\n');}, 1000);}};//简单用法示例const驱动程序=新驱动程序;const txt=“这是一个随机输入。”;if(driver.isRunning('enGB')===true)driver.write('enGB',txt);其他{/** *arrow函数每N stdin.write()调用一次*虽然我希望每次写入后都调用它*/driver.run('enGB',数据=&gt;console.log('已接收数据!',数据));driver.write('enGB',txt);}</code></pre><p>我试图:</p><ul><li>在stdin.write()周围使用cork()和uncork()</li><li>将child_process.stdout()管道到自定义Readable和Socket</li><li>将stdin、stdout和上述Readable中的highWaterMark值覆盖为1和0</li><li>我还忘了很多其他事情</li></ul><p>此外,我不能使用stdin.end(),因为我不想在每次新文本到达时都杀死二进制实例。有人有主意吗</p>(第页) https://stackoverflow.com/q/77745838 0 NodeJS child_process spawn未返回实时标准输出 晶体 https://stackoverflow.com/users/21385219 2024-01-02T11:38:31Z 2024-01-02T12:27:04Z <p>我试图从javascript文件(在<code>电子</code>项目中)中沿着这个python脚本的行运行一些东西,并实时回显输出:</p>导入时间定义main():打印(“你好1”)睡眠时间(1)打印(Hello 2)睡眠时间(1)打印(Hello 3)返回5如果__name__==&quot__main__&quot;:结果=main()打印(结果:{result})</code></pre><p>我使用以下Javascript代码执行文件:</p><pre class=“lang-js prettyprint-override”><code>//。。。const child=spawn(runners[lang],commandArgs,{shell:true});child.stdout.setEncoding('utf8');child.stdout.on('data',(data)=&gt;{console.log(`收到的数据:${data}`);});</code></pre><p>但我看到的是,在整个脚本完成运行后,所有输出都会在一个巨大的blob中打印出来,而不是&quot;您好,1;,等被逐行发送到我的javascript。基本上,我的<code>child.stdout.on</code>回调似乎只运行一次。这有具体的原因吗?在python脚本中调用<code>print</code>后,我如何在<code>child.stdout.on</code>中接收数据</p>(第页) https://stackoverflow.com/q/77154813 nx没有通过readline在输入提示上显示问题 保尔梅斯特 https://stackoverflow.com/users/872328 2023-09-22T04:07:58Z 2023-12-26T06:25:01Z <p>我正在通过<code>nx-run</code>在nx-monorepo中运行CLI,看起来nx正在缓存新行上的CLI输出,并阻止交互地回答终端的提示。下面是一个简单的示例:</p><p>假设我有一个用Python或JavaScript编写的CLI,它显示消息,然后请求输入。如何获得另一个nodejs脚本来运行此CLI并向我显示问题:<code>您叫什么名字</code><em>在问题后不需要换行</em></p>(第页)<h1>示例输出</h1><pre><code>欢迎使用我的CLI!你的名字叫什么?保罗嗨,保罗!</code></pre><h1>Python实现</h1><pre class=“lang-py prettyprint-override”><code>print(欢迎使用我的CLI)user_name=input(你叫什么名字?)打印(你好,{user_name})</code></pre><h1>TypeScript实现</h1><pre class=“lang-js prettyprint-override”><code>从“readline”导入readline;export const askQuestion=(query:string):承诺&lt;字符串&gt=&gt;{const rl=readline.createInterface({输入:process.stdin,输出:process.stdout,});return new Promise((解决,拒绝)=&gt;{rl.question(查询,(ans)=&gt;{rl.关闭();如果(ans){解决(ans);}其他{拒绝(“未收到答复”);}});});};const-main=异步()=&gt;{console.log(欢迎使用我的CLI);const userName=等待askQuestion(你叫什么名字?);console.log(`Hi,${userName}!`);}</code></pre><h1>我的尝试(未能显示问题)</h1><pre class=“lang-js prettyprint-override”><code>import*作为来自“execa”的execa;constmain=async()=&gt;{等待execa(cmd、args、{stdio:[进程.stdin,进程.stdout,“管道”],});}main()</code></pre><h2>输出</h2><pre><code>欢迎使用我的CLI!</code></pre><p>就这样!它不会显示;你叫什么名字&quot;。我会打字;保罗(Paul);程序将继续。但当通过nx运行时,它实际上不会显示问题。如果问题的末尾有一个<code>\n</code>(<code>你叫什么名字。但不幸的是,这个CLI运行程序需要使用我无法控制的CLI,并在没有换行符的情况下提示输入</p>(第页) https://stackoverflow.com/q/77687041 1 戈多拉多姆产卵地点 蒂亚戈·科斯塔 https://stackoverflow.com/users/2933520网址 2023-12-19T17:41:11Z 2023-12-20年T19:44:46Z <p>所以我一直在学习godot,现在我想在游戏中实现随机产卵位置,现在我只能在一侧产卵,我想至少4个</p>(第页)<小时/><pre><code>扩展Path3Dvar计时器=0var生成时间=2var敌人=预加载(&quot;res://whitecube.tscn&quot;)函数进程(增量)(_P):计时器+=增量if(定时器&gt;spawntime)var newnexter=敌人.实例化()add_child(新敌人)计时器=0</code></pre><p>这是我在path3D中的代码,每2秒钟生成一次扩展PathFollow3D</p><小时/><pre><code>@export var movespeed=6函数进程(增量)(_P):设置进程(get_progress()+移动*增量)</code></pre><p>这就是他们前进的道路和速度</p><小时/><p>我试图创建1个markers3d并将path/pathfollow3d场景拖到里面,然后复制并粘贴4次,但路径都是连接的,所以如果我移动路径1,路径2也会移动,我不知道为什么。总之,在创建之后,我考虑在&quot;中创建一个节点3d,它将用作生成位置和从1到4的随机数生成器;if(计时器>生成时间);如果每个位置都是这样,我会根据随机数设置spawnlocation=marker1、2、3或4</p>(第页)<p>我学这门语言才2个月左右。所以,如果我说的是愚蠢的话,我深表歉意并请求你的帮助。谢谢你</p>(第页)