2017-09-12 2 views
0

Ich habe Code, subprocess.check_output verwendet, nur gut, ich musste Ubuntu 16.04 neu installieren und danach beschweren, dass es jetzt das Attribut check_output nicht finden kann.Python Subprozess hat kein Attribut "check_output"

import subprocess 

p = subprocess.check_output("here is a command", shell=True) 

/usr/bin/python2.7 /home/username/subprocess.py 
Traceback (most recent call last): 
    File "/home/username/subprocess.py", line 1, in <module> 
    import subprocess 
    File "/home/username/subprocess.py", line 4, in <module> 
    p = subprocess.check_output("here is a command", shell=True) 
AttributeError: 'module' object has no attribute 'check_output' 

Bitte beachte, dass ich python2.7 bin mit der hier zu diesem Beitrag nach soll dieses Problem beheben, aber es funktioniert nicht.

subprocess.check_output() module object has out attribute 'check_output'

Was soll das? Ich habe versucht, pip installieren subprocess oder pip uninstall subprocess, aber kein Glück. Wie aktualisiere ich subprocess auf die neueste Version, so dass es das Attribut check_output hat? Ich möchte nicht Popen verwenden.

+0

Können Sie uns zeigen, wie Sie sicher wissen, dass Sie Python2.7 verwenden? Können Sie etwas ausgeben, wenn Sie die gleichen Schritte in der interaktiven Shell ausführen? – AK47

Antwort

1

Ihr Problem ist, dass Sie ein Skript mit dem Namen subprocess.py erstellt haben, so dass die ursprüngliche Bibliothek subprocess von Ihrem Modul "überschrieben" wurde.

Benennen Sie Ihr Skript /home/username/subprocess.py in etwas um, das nicht der Name des Python-Standardmoduls ist! Diese Regel gilt natürlich für alle anderen Python-Bibliotheken!

+0

Wow, du hast recht, ich habe nur übersehen, dass ich die Datei subprocess.py genannt habe. Was für ein lahmes Problem :( – Calculus

+0

Keine Notwendigkeit, sich zu schämen! Wir lernen alle! Willkommen bei StackOverflow! Achten Sie darauf, die Antwort zu akzeptieren und upvote, so dass es für die anderen hilfreich sein kann. –

Verwandte Themen