Python 2.7 在Jenkins上运行时,AWSEBCLI不工作。没有模块命名错误

Python 2.7 在Jenkins上运行时,AWSEBCLI不工作。没有模块命名错误,python-2.7,jenkins,amazon-elastic-beanstalk,continuous-deployment,ebcli,Python 2.7,Jenkins,Amazon Elastic Beanstalk,Continuous Deployment,Ebcli,我正在使用Jenkins和多分支管道、AWSCLI和AWSEBCLI为工作中的应用程序进行连续部署。通过ssh运行时,一切正常,但在jenkins上则不然 应用程序: -爪哇8 -马文 -夸克框架 詹金斯档案: tools { jdk 'jdk_1.8.0' maven 'Maven' } stages { stage('Environment Configuration') { steps { sh 'sudo pip inst

我正在使用Jenkins和多分支管道、AWSCLI和AWSEBCLI为工作中的应用程序进行连续部署。通过ssh运行时,一切正常,但在jenkins上则不然

应用程序: -爪哇8 -马文 -夸克框架

詹金斯档案:

tools {
    jdk 'jdk_1.8.0'
    maven 'Maven'
}

stages {
    stage('Environment Configuration') {
        steps {
            sh 'sudo pip install awscli==1.16.9 awsebcli==3.14.4'
        }
    stage('Deploy') {
        when {
            anyOf {
                branch 'feature/CD'
            }
        }
        steps {
            sh 'zip -r application.zip target Dockerfile'
            sh 'aws configure set aws_access_key_id $ACCESS_KEY_DEV --profile eb-cli'
            sh 'aws configure set aws_secret_access_key $SECRET_KEY_DEV --profile eb-cli'
            sh 'eb deploy'
        }
    }
}
}

在SSH上:

[root]# eb --version
EB CLI 3.14.4 (Python 2.7.5)
[root]# python --version
Python 2.7.5
[root]# aws --version
aws-cli/1.16.9 Python/2.7.5 Linux/3.10.0-862.11.6.el7.x86_64 botocore/1.11.9

[root]# eb deploy
Uploading application/app-9d9c-191122_104206.zip to S3. This may take a while.
Upload Complete.
2019-11-22 13:42:09    INFO    Environment update is starting.
2019-11-22 13:42:13    INFO    Deploying new version to instance(s).
关于詹金斯:

+ python --version
Python 2.7.5
[Pipeline] sh
+ aws --version
aws-cli/1.16.9 Python/2.7.5 Linux/3.10.0-862.11.6.el7.x86_64 botocore/1.11.9
+ eb deploy
Traceback (most recent call last):
  File "/bin/eb", line 5, in <module>
    from ebcli.core.ebcore import main
  File "/usr/lib/python2.7/site-packages/ebcli/core/ebcore.py", line 21, in <module>
    from ebcli.controllers.clone import CloneController
  File "/usr/lib/python2.7/site-packages/ebcli/controllers/clone.py", line 17, in <module>
    from ..operations import cloneops, commonops, solution_stack_ops
  File "/usr/lib/python2.7/site-packages/ebcli/operations/solution_stack_ops.py", line 23, in <module>
    from ebcli.operations import commonops, platformops
  File "/usr/lib/python2.7/site-packages/ebcli/operations/platformops.py", line 22, in <module>
    from semantic_version import Version
ImportError: No module named semantic_version
+python——版本
Python 2.7.5
[管道]上海
+aws——版本
aws cli/1.16.9 Python/2.7.5 Linux/3.10.0-862.11.6.el7.x86_64 botocore/1.11.9
+电子商务部署
回溯(最近一次呼叫最后一次):
文件“/bin/eb”,第5行,在
从ebcli.core.ebcore导入main
文件“/usr/lib/python2.7/site packages/ebcli/core/ebcore.py”,第21行,在
从ebcli.controllers.clone导入CloneController
文件“/usr/lib/python2.7/site packages/ebcli/controllers/clone.py”,第17行,在
从..操作导入克隆操作、通用操作、解决方案\u堆栈\u操作
文件“/usr/lib/python2.7/site packages/ebcli/operations/solution_stack_ops.py”,第23行,在
从ebcli.operations导入commonops、platformops
文件“/usr/lib/python2.7/site packages/ebcli/operations/platformops.py”,第22行,在
从语义版本导入版本
ImportError:没有名为semantic\u版本的模块

您的计算机上可能有多个
pip
pip install awsebcli
应该已经安装了
semantic\u版本
Python包,但是,正如您从发布的堆栈跟踪中所看到的,找不到它。要解决这些问题,最好使用virtualenv。如果您只想进行干净的安装,Beanstalk允许您安装EBCLI而无需任何摩擦。

问题在于,awsebcli所依赖的一个或多个Python模块对于Jenkins用户是不可访问的,但对于root用户是可用的,因为您是以sudoer身份安装它们的。看见