我正在嘗試使用 jenkins 管道安裝 cookiecutter 實用程式。我嘗試運行這個階段:
stage('Install CookieCutter') {
steps{
script {
sh'''
pip uninstall cookiecutter -y
export PATH=$HOME/.local/bin:$PATH
pip install --user cookiecutter
cookiecutter -V
'''
}
}
}
運行此階段后,我得到以下輸出:
pip uninstall cookiecutter -y
Found existing installation: cookiecutter 1.7.3
Uninstalling cookiecutter-1.7.3:
Successfully uninstalled cookiecutter-1.7.3
export PATH=/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
PATH=/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
pip install --user cookiecutter
Collecting cookiecutter
Using cached cookiecutter-1.7.3-py2.py3-none-any.whl (34 kB)
Requirement already satisfied: click>=7.0 in /root/.local/lib/python2.7/site-packages (from cookiecutter) (7.1.2)
Requirement already satisfied: six>=1.10 in /usr/local/lib/python2.7/site-packages (from cookiecutter) (1.16.0)
Installing collected packages: cookiecutter
WARNING: The script cookiecutter is installed in '/root/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed cookiecutter-1.7.3
cookiecutter -V
/workspace/pipeline@tmp/durable-123456/script.sh: line 5: cookiecutter: command not found
我暫時忽略 pip 版本警告,因為我認為這與未安裝有任何關系。
這里出了什么問題?
uj5u.com熱心網友回復:
WARNING: The script cookiecutter is installed in '/root/.local/bin' which is not on PATH.
因此,由于某種原因,您的匯出不起作用。這可能有兩個原因:
- $HOME 不是root,我實際上對此表示懷疑
- 這個 Jenkins 腳本的行為類似于 GNU Make。每一行都在不同的子 shell 中執行,因此您的匯出并不算數。嘗試將其作為一個單行執行,如下所示:
stage('Install CookieCutter') {
steps{
script {
sh'''
pip uninstall cookiecutter -y && \
export PATH=$HOME/.local/bin:$PATH && \
pip install --user cookiecutter && \
cookiecutter -V
'''
}
}
}
或者您可以嘗試將其作為更簡潔的變體:
stage('Install CookieCutter') {
steps{
script {
sh'''
pip uninstall cookiecutter -y
pip install --user cookiecutter
PATH=$HOME/.local/bin:$PATH cookiecutter -V
'''
}
}
}
uj5u.com熱心網友回復:
原來主目錄沒有正確定義所以替換$HOME為~
script {
sh'''
pip uninstall cookiecutter -y
source ~/.bash_profile
export PATH="~/.local/bin:$PATH"
pip install --user cookiecutter
ls ~/.local/bin
cookiecutter -V
'''
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/483623.html
上一篇:當我嘗試在Jenkins中創建一個“新專案”時,我只能選擇創建一個自由式專案,而沒有其他選項
下一篇:如何檢測鍵盤輸入?
