问题标签 [plumbum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2280 浏览

python - 使用 plumbum 捕获前台命令的错误输出

我正在使用 plumbum python 库 (http://plumbum.readthedocs.org/) 作为 shell 脚本的替代品。

我想运行一个命令,当它失败时,它会输出我感兴趣的文件的路径:

我想在前台运行程序来检查进度:

slow_cmd失败时,它会抛出异常(我可以捕获)。但我无法从异常或f未来对象中获取错误输出。

如果我不在slow_cmdFG 上运行,异常包含所有输出,我可以从那里读取文件。

0 投票
3 回答
836 浏览

python - 避免在 plumbum 中转义 glob 表达式

假设我想运行类似ls a*使用的东西plumbum

我知道铅会自动逃避争论,这通常是一件好事。但是有没有办法让它理解 glob 表达式应该按原样传递给 shell?

0 投票
1 回答
878 浏览

python - 在铅锤上使用 python 运行 sudo 命令的问题

我正在使用 Python 2.7 和来自 mac 端口的最新铅包。

一般来说,铅效果很好。虽然我有一段时间让 sudo'd 命令工作。我已经为我想要运行的命令设置了我的 /etc/sudoers,而无需提示,所以这很好。我可以手动运行命令而不会出现问题。

但是,当我使用这个从 python 尝试相同的操作时:

我收到以下错误:

plumbum.commands.processes.ProcessExecutionError:命令行:['/usr/bin/sudo','-u userfoo']

退出代码:1

标准错误:| sudo:未知用户:userfoo

用户确实存在,所以不完全确定这里的交易是什么。

注释?

0 投票
1 回答
159 浏览

python - 铅泄漏 Popen 对象

我有一个类似守护进程的进程,它使用plumbum. 我注意到它会泄漏Popen物体。

易于复制:

这是一个错误吗?(我找不到在哪里报告铅中的错误......)

我还“试验”了修改泄漏Popen对象,试图打破引用循环(假设存在一个,导致泄漏),但它没有帮助。

在 linux 上运行,plumbum 版本 1.14.0。

0 投票
1 回答
1070 浏览

python - 如何在 python 中自动化远程部署?

我想自动化目前我正在手动执行的远程部署。

该过程包括

  1. 从某些文件夹中制作 tar 球
  2. SFTP 到远程服务器
  3. 重命名旧文件夹
  4. 解压新的 tar 文件
  5. 重启阿帕奇

远程系统在 Intranet 上,无法访问外部 Internet

我想知道如何从我的 python 脚本传输文件,然后在传输完成后登录 ssh 并做一些事情。我对如何实现这一目标感到困惑。在本地主机上,我可以做到所有这些,但我如何在远程主机上做到这一点?

0 投票
1 回答
293 浏览

python - 有没有办法在输出时打印标准输出?

如果我跑了

它会无限期地挂起,因为 ping 永远执行。

有没有办法在执行时打印 ping 的输出,可能在生成器或其他东西中,比如

0 投票
1 回答
217 浏览

python - Python铅锤:在cmd参数中传递$

我正在尝试使用铅在 python 中执行以下命令:

但是,我在通过-t$'\t'论点时遇到问题。这是我的代码:

我可以立即看到问题print separatorprint cmd()执行:

  1. 参数用双引号括起来。
  2. 在 $ 和 \t 之前插入一个额外的 \。

我应该如何将这个论点传递给铅?

0 投票
1 回答
383 浏览

python - 执行从 Python 文件中读取为字符串的复杂 Shell 命令

我有一个配置文件,用户可以在其中指定一组 shell 命令。命令基本上是一系列以管道分隔的 shell 命令。

我能够阅读我的 Python 脚本中的命令。我的问题是如何在 Python 中运行这些读取命令字符串并获得输出。

任何带有subprocess, plumbum,的解决方案都是sh可以接受的。

0 投票
4 回答
776 浏览

python - 从列表中将参数传递给 python plumbum 命令

我正在使用Plumbum在 Python 的前台运行命令行实用程序。如果你有一个命令foo x y z,你会像这样从 Plumbum 运行它:

然而,在我正在编写的代码中,参数['x', 'y', 'z']被生成到一个列表中。我不知道如何解压此列表以将其作为参数发送给铅。有什么建议么?

0 投票
1 回答
563 浏览

ssh - plumbum:SSH 到我的远程服务器

美好的一天,我在 anaconda 上使用铅连接到我的远程服务器 A。

我创建了一个新用户 linux2 并为该用户分配了一个公钥。然后将 .ssh 和 authorizedkeys 的权限更改为

chmod 700 /home/linux2/.ssh chmod 600

/home/linux2/.ssh/authorized_keys

当我尝试代码时:

我收到以下错误:请协助

CommandNotFound Traceback (last last call last) in () 1 # YOUR CODE HERE 2 from plumbum import SshMachine ----> 3 rem=SshMachine("000.000.131.110",user="linux2",password = "password")

C:\ProgramData\Anaconda3\lib\site-packages\plumbum\machines\ssh_machine.py in init (self, host, user, port, keyfile, ssh_command, scp_command, ssh_opts, scp_opts, password, encoding, connect_timeout, new_session) 77如果 ssh_command 为 None: 78 如果密码不是 None: ---> 79 ssh_command = local["sshpass"]["-p", password, "ssh"] 80 else: 81 ssh_command = local["ssh"]

C:\ProgramData\Anaconda3\lib\site-packages\plumbum\machines\local.py in getitem (self, cmd) 206 else: 207 # 搜索命令 --> 208 return LocalCommand(self.which(cmd)) 209 else: 210 raise TypeError("cmd 不能是 RemotePath: %r" % (cmd,))

C:\ProgramData\Anaconda3\lib\site-packages\plumbum\machines\local.py 其中(cls, progname) 176 if path: 177 return path --> 178 raise CommandNotFound(progname, list(cls.env.path )) 179 180 def 路径(self, *parts):

CommandNotFound: ('sshpass', [, , , , , , , , , , , , , , , , , , , , , , ])