首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模块“子进程”在作为脚本启动时没有属性“run”

模块“子进程”在作为脚本启动时没有属性“run”
EN

Stack Overflow用户
提问于 2018-06-07 08:41:42
回答 1查看 6.3K关注 0票数 3

我想在python3.5中创建一个子进程,我遇到了以下问题:

代码语言:javascript
运行
复制
AttributeError: module 'subprocess' has no attribute 'run'

我搜索了相同的问题,但在其他答案中,问题来自python2.7,或者版本小于3.5。在这里,我肯定会在python 3.5.2中

下面是我用来启动脚本的命令:

代码语言:javascript
运行
复制
(isadora) rdharreville@rdharreville-VirtualBox:~/projects/isadora$ python webbackend/flask-app/subprocess.py 

守则如下:

代码语言:javascript
运行
复制
import subprocess
subprocess.run(["ls", "-l"])

真正让我感到困惑的是,当我在同一个虚拟环境中运行它时,但是在python shell中,它可以工作:

代码语言:javascript
运行
复制
(isadora) rdharreville@rdharreville-VirtualBox:~/projects/isadora$ python
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.run(["ls", "-l"])
total 44
-rw-rw-r-- 1 rdharreville rdharreville 17696 juin   6 17:28 bn.log
-rwxrwxr-x 1 rdharreville rdharreville  1114 mai   31 09:11 docker-compose.yml
drwxrwxr-x 4 rdharreville rdharreville  4096 mai   23 17:00 isadora
-rw-rw-r-- 1 rdharreville rdharreville     0 juin   6 17:44 logerrors.txt
drwxrwxr-x 6 rdharreville rdharreville  4096 mai   25 10:49 notebooks
drwxrwxr-x 6 rdharreville rdharreville  4096 juin   6 16:21 resources
drwxrwxr-x 3 rdharreville rdharreville  4096 juin   6 16:21 webbackend
drwxrwxr-x 8 rdharreville rdharreville  4096 juin   5 17:18 webfrontend
CompletedProcess(args=['ls', '-l'], returncode=0)
>>> 

我最后一次检查我是否在同一个python环境中做的最后一件事是打印(sys.version)作为脚本的开始,结果如下:

代码语言:javascript
运行
复制
(isadora) rdharreville@rdharreville-VirtualBox:~/projects/isadora$ python webbackend/flask-app/subprocess.py 
3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609]
Traceback (most recent call last):
  File "webbackend/flask-app/subprocess.py", line 1, in <module>
    import subprocess
  File "/home/rdharreville/projects/isadora/webbackend/flask-app/subprocess.py", line 24, in <module>
    subprocess.run(["ls", "-l"])
AttributeError: module 'subprocess' has no attribute 'run'

以下是问题所在:

您是否知道为什么在一种情况下(python )可以工作,而在启动脚本时却不起作用?

PS :我也试过用metods 'Popen‘和’调用‘子进程模块,同样的问题.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 08:46:51

将脚本subprocess.py的名称更改为不同的名称。

因为当您将它作为脚本运行时,就会出现以脚本“subprocess”的名称命名的模块,而且python在其中找不到run()方法。

当您在python中运行代码时,脚本中没有定制的“子进程”模块。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50736713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档