2014-09-16 4 views
0

Я пытаюсь запустить работу Python. Я создал следующую папку:не удалось запустить скрипты python с jenkins

C:\Users\herod\jenkins_ws\workspace\window_testing

и добавил к ней скрипт "testing.py".

Сценарий очень прост:

if __name__ == "__main__": 
    print "hellow world !" 
    f = open('test_log.txt','w') 
    f.write("hello\n") 
    f.close 

Но я получаю следующее сообщение об ошибке при запуске из Дженкинс (если я запустить его из командной строки он работает):

>Building remotely on windows1 (widndows_genereal) in workspace C:\Users\herod\jenkins_ws\workspace\window_testing 
[window_testing] $ python C:\windows\TEMP\hudson5234791200924972506.py 
    The system cannot find the file specified 
    FATAL: command execution failed 
    java.io.IOException: Cannot run program "python" (in directory "C:\Users\herod\jenkins_ws\workspace\window_testing"): CreateProcess error=2, The system cannot find the file specified 
     at java.lang.ProcessBuilder.start(Unknown Source) 
     at hudson.Proc$LocalProc.<init>(Proc.java:244) 
     at hudson.Proc$LocalProc.<init>(Proc.java:216) 
     at hudson.Launcher$LocalLauncher.launch(Launcher.java:775) 
     at hudson.Launcher$ProcStarter.start(Launcher.java:355) 
     at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1024) 
     at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:991) 

Что я Я делаю неправильно?

Вот что я пробовал:

  • в конфигурировании для работы на участке сборки я выбираю «выполнить питон скрипт» и чем вошел в testing.py файл - не работает.

  • Я также попытался войти туда python testing.py и python.exe test.py - не работает.

  • Пытается написать скрипт python в тексте редактирования сценария - не работает.

  • Если я изменяю тип выполнения из python в пакетный файл, и он показывает, что он проходит, но на самом деле он не запускал скрипт python.

Update2: (после попытки решения Technext) я получил следующую ошибку:

Building remotely on windows1 (widndows_genereal) in workspace C:\Users\herod\jenkins_ws\workspace\window_testing 
[window_testing] $ python C:\Users\herod\AppData\Local\Temp\hudson4767788636447260218.py 
Traceback (most recent call last): 
    File "C:\Users\herod\AppData\Local\Temp\hudson4767788636447260218.py", line 1, in <module> 
    testing.py 
NameError: name 'testing' is not defined 
Build step 'Execute Python script' marked build as failure 
Finished: FAILURE 

ответ

0

Поскольку сценарий питона прекрасно работает в командной строке, но имеет проблемы при работе через Дженкинс, это наиболее вероятно, означает, что пользователь , с которым работает Jenkins, имеет проблемы с поиском исполняемого файла Python, т.е. python.exe. Если возможно (и выполнимо) для вас изменить пользователя Jenkins, то, пожалуйста, измените его, используя описанный мной процесс here. Запустите его как пользователь, с которым вы успешно запускаете программу в командной строке.

+0

thx для ответа - все еще не работает - см. Update2. – yehudahs

+0

Пожалуйста, вставьте вывод 'where python', когда вы вводите его в командной строке Win. Вставьте вывод% PATH%, который вы получите из командной строки Win. Кроме того, echo% PATH% в консоли Jenkins. – Technext

+0

где python дал: C: \ Python27 \ python.exe и% PATH% было одинаковым в командной строке win и в консоли jenkins: C: \ windows \ system32; C: \ windows; C: \ windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files \ Средства отладки для Windows (x64); c: \ UnixTools; C: \ Program Files (x86) \ CMake 2.8 \ bin; C: \ Program Files (x86) \ Git \ cmd; C : \ Program Files (x86) \ Git \ bin; C: \ Python27 \ Scripts; C: \ Python27 \; – yehudahs

-1

При запуске python как команды в пакетном файле, укажите полный путь к исполняемому файлу Python или вам нужно будет настроить путь в среде Jenkins. Предположим, что ваш питон исполняемый файл хранится в C:\Python27 папке, а затем выполните следующие действия:

C:\Python27\python.exe <full path of python file to execute> 
0

При установке Python в Windows, есть возможность «Добавить Python в System Path», который вы должны убедиться, что выбран. Вы можете безопасно установить поверх существующего Python, если не уверены. Это работало для нас в Jenkins, используя плагин Python.