У меня есть файл bat.bat, содержащий следующую команду: 'setup.py build'
У меня есть скрипт, который выполняет эту команду bat, используя: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
... мммммм ...
ОБНОВЛЕНИЕ:
Я решил запустить команду 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 для замораживания и выполнения, но указанная выше ошибка возвращается, когда я пытаюсь это сделать.
ОБНОВЛЕНИЕ:
Похоже, что запуск os.system('bat.bat') или эквивалентного подпроцесса успешно выполняет файл .bat, если он запускается из стандартного интерпретатора python. Так что это только безуспешно, если запустить из Pydev
setup.py
? Вам нужно либо а) указать полный путь кsetup.py
в вашемbat.bat
, либо б) добавить папку, содержащуюsetup.py
, в вашу переменную PATH (в Linux:export PATH=$PATH:/path/to/folder/containing/setuppy
). - person mathematical.coffee   schedule 25.12.2011