我想在python3.5中创建一个子进程,我遇到了以下问题:
AttributeError: module 'subprocess' has no attribute 'run'
我搜索了相同的问题,但在其他答案中,问题来自python2.7,或者版本小于3.5。在这里,我肯定会在python 3.5.2中
下面是我用来启动脚本的命令:
(isadora) rdharreville@rdharreville-VirtualBox:~/projects/isadora$ python webbackend/flask-app/subprocess.py
守则如下:
import subprocess
subprocess.run(["ls", "-l"])
真正让我感到困惑的是,当我在同一个虚拟环境中运行它时,但是在python shell中,它可以工作:
(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)作为脚本的开始,结果如下:
(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‘和’调用‘子进程模块,同样的问题.
发布于 2018-06-07 08:46:51
将脚本subprocess.py的名称更改为不同的名称。
因为当您将它作为脚本运行时,就会出现以脚本“subprocess”的名称命名的模块,而且python在其中找不到run()方法。
当您在python中运行代码时,脚本中没有定制的“子进程”模块。
https://stackoverflow.com/questions/50736713
复制相似问题