Итак, я пытаюсь написать короткий скрипт, который автоматизирует подтягивание страниц справки Unity3D (пять из них), а также самого Unity и TortoiseHG , Поскольку модуль webbrowser не вел себя так, как я хотел (в моем окне Win7), я использовал subprocess.run.Сценарий Python запускается при двойном щелчке, но не запускается в IDLE
Прошлой ночью, я подумал, что, наконец, исправил эту вещь и сделал все, что хотел, только чтобы открыть пять окон вместо вкладок, если Firefox еще не запущен. Тот же вопрос, который у меня был с webbrowser.open, иди цифрой.
Но это не потому, что я здесь. Я здесь, потому что, когда я открыл скрипт с IDLE, чтобы попытаться исправить , что проблема, я столкнулся с новой проблемой: скрипт будет работать нормально, если я дважды нажму на него, но если я попытаюсь запустить его через IDLE с F5 я
Traceback (most recent call last):
File "C:\Users\<me>\AppData\Local\Programs\Python\Python35-32\GameDevEnvironment.py", line 5, in <module>
subprocess.run(r'start firefox -new-tab https://unity3d.com/learn/tutorials', shell=True)
AttributeError: 'module' object has no attribute 'run'
Мой полный код:
import os
import subprocess
#import time
subprocess.run(r'start firefox -new-tab https://unity3d.com/learn/tutorials', shell=True)
#time.sleep(5)
subprocess.run(r'start firefox -new-tab https://answers.unity3d.com', shell=True)
subprocess.run(r'start firefox -new-tab https://unity3d.com/learn/tutorials/topics/scripting', shell=True)
subprocess.run(r'start firefox -new-tab https://docs.unity3d.com/Manual/index.html', shell=True)
subprocess.run(r'start firefox -new-tab https://docs.unity3d.com/ScriptReference/index.html', shell=True)
#os.startfile(r'C:\Program Files\Unity\Editor\Unity.exe')
#os.startfile(r'C:\Program Files\TortoiseHg\thgw.exe')
Я собирался попробовать использовать метод time.sleep получить запущенный процесс Firefox, так что он не откроет новое окно для каждый вызов subprocess.run (как сказано ранее, они будут открываться в закладках, если Firefox уже запущен). Я прокомментировал это, пытаясь решить новую проблему.
Что я уже пробовал: поиск файла .pyc, который может ввести в заблуждение импорт. Не найдено. Убедившись, что ни один из моих методов или классов не назван в честь модулей Python - как вы можете видеть, нет определений методов или классов, и если у Python нет модуля GameDevEnvironment.py ... Я нашел здесь много вопросов и в другом месте людей, имеющих противоположный вопрос о запуске в IDLE, не на двойном щелчке и т. д., но не смогли найти ничего, что явно важно ...
Я ценю ваше время и помощь!
Я подозреваю, что IDLE использует другую установку питона, чем двойной щелчок делает. Можете ли вы добавить 'import sys' /' print (sys.version) 'для подтверждения? –
'subprocess.run' является новым в python 3.5. Как и было предложено, проверьте версию python. – tdelaney
Это действительно проблема. Я чувствую, что должен был знать: p Спасибо, ребята! – pyansharp