У меня есть файл bat.bat, содержащий следующую команду: 'setup.py build'
У меня есть скрипт, который выполняет эту команду летучей мыши, используя:
os.system('E:/bla/FPtest/retryURL/Temp_installed/bat.bat'
Если я запускаю скрипт из той же папки, что и bat.bat ..., он отлично работает.
Если я запускаю его в ЛЮБОЙ другой папке, возвращается следующая ошибка.
**'setup.py'** is not recognized as an internal or external command, operable program or batch file.
Я также пытался subprocess.Popen
, который возвращает тот же результат НО он включает это в верхней части: C:\Eclipse\Workspace\example>setup.py build
... мммммм ...
UPDATE:
Я решил запустить
Команда os.system в том же каталоге, где хранится файл bat.bat (это ТАКЖЕ каталог, в котором хранится файл setup.py)
звонок теперь должен быть таким простым.
import os
os.system('bat.bat') note: (run from pydev)
результат:
E:\App\FPtest\retryURL\Temp_installed>setup.py build
Traceback (most recent call last):
File "C:\Python31\lib\site.py", line 56, in <module>
import os
File "C:\Python31\lib\os.py", line 380, in <module>
from _abcoll import MutableMapping # Can't use collections (bootstrap)
File "C:\Python31\lib\_abcoll.py", line 49
class Hashable(metaclass=ABCMeta):
^
SyntaxError: invalid syntax
Дополнительное примечание:
Если я запускаю любой «простой» файл .bat, все работает нормально. и если я запускаю файл .bat за пределами интерпретатора, он тоже работает нормально ... что заставляет меня поверить, что именно содержимое файла .bat вызывает проблему: setup.py build
.
В этом случае содержимое файла .bat выполняет команду cx_freeze для остановки и запуска, но вышеупомянутая ошибка - то, что возвращается, когда я пытаюсь это
UPDATE:
Похоже, что он запускает 'os.system (' bat.bat ') или эквивалентный подпроцесс успешно выполняет файл .bat, если он запускается из стандартного интерпретатора python. Так что это только неудачно, если запустить из Pydev