Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从/.bashrc运行时Python脚本的行为不同_Python_Subprocess - Fatal编程技术网

从/.bashrc运行时Python脚本的行为不同

从/.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

我在Raspberry pi上做了一个代码,将一个U盘克隆到另一个U盘。当我从pythonshell运行它时,它工作得很好。但是,当我试图在启动或打开终端时使用/.bashrc运行它时,我得到了错误
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/…
后,所有内容都已修复。谢谢你的帮助