从/.bashrc运行时Python脚本的行为不同
我在Raspberry pi上做了一个代码,将一个U盘克隆到另一个U盘。当我从pythonshell运行它时,它工作得很好。但是,当我试图在启动或打开终端时使用/.bashrc运行它时,我得到了错误从/.bashrc运行时Python脚本的行为不同,python,subprocess,Python,Subprocess,我在Raspberry pi上做了一个代码,将一个U盘克隆到另一个U盘。当我从pythonshell运行它时,它工作得很好。但是,当我试图在启动或打开终端时使用/.bashrc运行它时,我得到了错误TypeError:\uuu init\uuuu()得到了一个意外的关键字参数“text”。我计算出,通过匹配文本参数,我修复了这个错误,但是我的代码无法从stderr读取 我的代码: comm = 'sudo dd if=/dev/sda of=/dev/sdb status=progress' c
TypeError:\uuu init\uuuu()得到了一个意外的关键字参数“text”
。我计算出,通过匹配文本参数,我修复了这个错误,但是我的代码无法从stderr读取
我的代码:
comm = 'sudo dd if=/dev/sda of=/dev/sdb status=progress'
cloning = subprocess.Popen(comm, shell = True, stderr = PIPE, text = True)
while True:
output = cloning.stderr.readline()
progress_bar(output)
上述代码在直接在python中运行时有效。使用/.bashrc运行时-从代码中删除'text'
参数时执行命令。但是代码被困在.readline()
上
相关问题:
提前感谢您的帮助。鉴于您是从.bashrc运行的,我想知道您的环境是否已完全设置好。也许您正在运行不同版本的Python。打印出Python版本和/或路径,并确保在这两种情况下使用相同的Python。3.7将
text
参数添加到subprocess.Popen
。因此,运行您的脚本的Python就在这之前。您可以通过在脚本顶部打印sys.version
进行检查。是的,您是对的,当我从python shell运行它时,/.bashrc
中的版本是3.7和2。将/.bashrc
命令更改为sudo pyhton3/…
后,所有内容都已修复。感谢您的帮助。如果您是从.bashrc运行的,我想知道您的环境是否已完全设置好。也许您正在运行不同版本的Python。打印出Python版本和/或路径,并确保在这两种情况下使用相同的Python。3.7将text
参数添加到subprocess.Popen
。因此,运行您的脚本的Python就在这之前。您可以通过在脚本顶部打印sys.version
进行检查。是的,您是对的,当我从python shell运行它时,/.bashrc
中的版本是3.7和2。将/.bashrc
命令更改为sudo pyhton3/…
后,所有内容都已修复。谢谢你的帮助