Jenkins「'python' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
問題その1
Windows10でcron代わりのJenkinsにpythonスクリプトを実行させたらエラー発生!!
python --versionすらエラーになる始末です。
C:\Program Files (x86)\Jenkins\workspace\myjob>python --version
'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
問題その2
これは単純にパスが通ってなかっただけだったのでJenkinsの環境変数にpythonのパスを追加したら解決しました。
ところが次の問題が発生しました。
conda activateした後でbatが終了してしまい、肝心のpythonスクリプトが実行されていないのです。
C:\Program Files (x86)\Jenkins\workspace\auto_twitter>C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3
Finished: SUCCESS
原因と解決策
conda activateでconda.batを直接呼び出しているため、終了したら元のJenkinsのbat本体も終了していることが原因だったのです。
そこで、conda activate をCALL呼び出しすることで解決しました。
修正前
conda activate
修正後
CALL conda activate
実行結果
conda activate 後のpythonコマンドが動きました。
C:\Program Files (x86)\Jenkins\workspace\auto_twitter>CALL conda activate
(base) C:\Program Files (x86)\Jenkins\workspace\auto_twitter>python --version
Python 3.6.8 :: Anaconda, Inc.
おわりに
Jenkinsからpythonを呼ぶだけで まさかパス問題に出くわすとは驚きました。
開発環境で時間を取られると やる気とか いろいろ消耗しますね。。。
環境
Windows10
Jenkins 2.176.2
Anaconda(conda) 4.7.10
Python 3.6.8 :: Anaconda, Inc.
ウチの子供にこんな迷路でひらがなを教えていて、結構よい感じでした。
こちらのサイトで古いですが公開しているので良かったら見てね。
おまけ
Author And Source
この問題について(Jenkins「'python' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」), 我々は、より多くの情報をここで見つけました https://qiita.com/nobu037/items/0b75b4902c5269483a6a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .