相关疑难解决方法(0)

在Python中运行Bash命令

在我的本地机器上,我运行一个包含这一行的python脚本

bashCommand = "cwm --rdf test.rdf --ntriples > test.nt"
os.system(bashCommand)
Run Code Online (Sandbox Code Playgroud)

这很好用.

然后我在服务器上运行相同的代码,我收到以下错误消息

'import site' failed; use -v for traceback
Traceback (most recent call last):
File "/usr/bin/cwm", line 48, in <module>
from swap import  diag
ImportError: No module named swap
Run Code Online (Sandbox Code Playgroud)

所以我所做的就是插入一个"print bashCommand",它在使用os.system()运行它之前打印我,而不是终端中的命令.

当然,我再次得到错误(由os.system(bashCommand)引起)但在该错误之前它在终端中打印命令.然后我只是复制了那个输出并在终端上做了一个复制粘贴,然后点击回车就可以了......

有没有人知道发生了什么?

python bash

260
推荐指数
8
解决办法
47万
查看次数

分发具有 Julia 依赖项的独立 Python 软件

我有一个主要用 Python 编写的软件,现在,我使用PyInstaller以用户友好的方式捆绑和分发软件(它是我的 CI 管道的一部分,适用于 Linux 和 Windows)。

但是,我的表现很糟糕,我想用 Julia 重写一些重要的部分,同时将前端保留在 Python 中。我可以使用PyJulia来做到这一点,但这意味着用户必须手动安装 Julia 才能使用我的程序。

朱莉娅确实有PyInstaller相当于,这是PackageCompiler.jl,但我不知道该怎么称呼的东西与PackageCompiler.jl从Python方编制。

我怎样才能做到这一点,以便我可以捆绑和分发具有 Python、Julia 及其运行所需的一切的可执行文件?


多一点细节

我的最终用户是不知道什么是编程的人(化学家和药剂师)。他们没有 Python、Julia 或 Docker(他们甚至不想安装它)。

在我目前的方法中,与 PyInstaller 捆绑的软件由一个可执行文件组成,其中包含所有内容(Python 及其所需的一切)。我真正想要的是保持相同的用户体验,而且还有 Julia 在后台运行。

我将在 Julia 端实现几个函数,并且我想要(几乎)与 PyJulia 相同级别的集成。

也许我会去 Rust 并只使用 C 接口,但我真的很想使用 Julia。

谢谢你们的时间。

python pyinstaller julia packagecompiler.jl

8
推荐指数
1
解决办法
157
查看次数

使用python控制终端应用程序

我有一个通过控制台运行的服务器程序.(具体来说,Bukkit MineCraft服务器)我希望能够控制这个程序并读取输出.没有GUI,所以它不应该太难,对吧?

无论如何,我从来没有在python中控制一个控制台而且完全卡住了.有什么建议?

PS我正在使用Debian Linux,因此应该简化一些事情.

我得到了一个很好的答案,但我还需要一件事.我想有一些方法将程序的FULL输出打印到python控制台(逐行排序很好),我需要一些方法将控制台中的命令转发到程序.

python terminal

4
推荐指数
1
解决办法
3538
查看次数

如何在python脚本中运行终端命令?

最好在 mac 上,您需要导入哪些模块,或者只需要编写哪些模块来运行一些简单的操作,例如:打开终端并使用 mac 终端上的 screencapture 命令每分钟捕获屏幕图像的 python 脚本?

python macos terminal command

4
推荐指数
1
解决办法
4052
查看次数

python子进程的自定义标准输入

我正在运行这样的SSH进程:

sshproc = subprocess.Popen([command], shell=True)
exit = os.waitpid(sshproc.pid, 0)[1]
Run Code Online (Sandbox Code Playgroud)

这可以工作并打开一个交互式终端.根据文档subprocess,sshproc使用脚本sys.stdin.

问题是:如何向stderr或文件打印正在接收此子进程的输入?我正在创建一个日志API,并且目前无法记录在此SSH会话上运行的命令.

我不需要答案,只需要朝着正确的方向轻推.

感谢大家!

编辑:重要的是我启动如上所示的过程,以便我可以与我的用户进行交互式SSH会话.例如communicate(),据我所知,我无法使用.

python stdin subprocess

2
推荐指数
1
解决办法
8142
查看次数