Python Jenkins CICD 管道设置模块错误

问题描述 投票:0回答:1

我试图设置一个 Python Jenkins CICD 管道并了解它是如何工作的。然后在 docker 上部署相同的内容以练习端到端部署。

尝试从博客文章中提到的存储库进行现有设置时,出现以下错误。 错误摘要:未找到模块 imp 并且进程中断。

我最初认为它与存储库中的 setup.py 有关,其中包含在 Jenkins 本地主机上安装 Python 的说明,但当我查看日志时发现它来自正在安装的库模块。

错误消息日志:

这是获取 scipy pkg 后出现错误的地方: [

      14:30:42  + pip3 install -r requirements/dev.txt
      14:30:42  Collecting Click==6.7 (from -r requirements/prod.txt (line 2))
      14:30:42    Using cached click-6.7-py2.py3-none-any.whl.metadata (424 bytes)
      14:30:42  Collecting numpy==1.14.3 (from -r requirements/prod.txt (line 5))
      14:30:42    Using cached numpy-1.14.3.zip (4.9 MB)
      14:30:42    Preparing metadata (setup.py): started
      14:30:43    Preparing metadata (setup.py): finished with status 'done'
      14:30:43  Collecting scipy==1.0.1 (from -r requirements/prod.txt (line 6))
      14:30:43    Using cached scipy-1.0.1.tar.gz (15.5 MB)
      14:30:43    Preparing metadata (setup.py): started
      14:30:44    Preparing metadata (setup.py): finished with status 'error'
      14:30:44    error: subprocess-exited-with-error
      14:30:44    
      14:30:44    × python setup.py egg_info did not run successfully.
      14:30:44    │ exit code: 1
      14:30:44    ╰─> [13 lines of output]
      14:30:44        Traceback (most recent call last):
      14:30:44          File "<string>", line 2, in <module>
      14:30:44          File "<pip-setuptools-caller>", line 34, in <module>
      14:30:44          File "/tmp/pip-install-l5j04co1/scipy_4df4228396dd4dc38b4e7c2e7bb1e6f0/setup.py", line 418, in <module>
      14:30:44            setup_package()
14:30:44          File "/tmp/pip-install-l5j04co1/scipy_4df4228396dd4dc38b4e7c2e7bb1e6f0/setup.py", line 346, in setup_package
14:30:44            write_version_py()
14:30:44          File "/tmp/pip-install-l5j04co1/scipy_4df4228396dd4dc38b4e7c2e7bb1e6f0/setup.py", line 140, in write_version_py
14:30:44            FULLVERSION, GIT_REVISION = get_version_info()
14:30:44                                        ^^^^^^^^^^^^^^^^^^
14:30:44          File "/tmp/pip-install-l5j04co1/scipy_4df4228396dd4dc38b4e7c2e7bb1e6f0/setup.py", line 116, in get_version_info
14:30:44            import imp
14:30:44        ModuleNotFoundError: No module named 'imp'
14:30:44        [end of output]
14:30:44    
14:30:44    note: This error originates from a subprocess, and is likely not a problem with pip.
14:30:44  error: metadata-generation-failed
14:30:44  
14:30:44  × Encountered error while generating package metadata.
14:30:44  ╰─> See above for output.
14:30:44  
14:30:44  note: This is an issue with the package mentioned above, not pip.
14:30:44  hint: See above for details.

]

我正在按照博客上的说明进行操作,并尝试逐步部署适合我的管道。

知道在哪里可以找到文件“/tmp/pip-install-l5j04co1/scipy_4df4228396dd4dc38b4e7c2e7bb1e6f0/setup.py”,因为我在 GITHUB 存储库中找不到它?或者是由于其他问题而出现错误?

不确定要添加哪个文件作为参考,setup.py 文件是否足够?

故障排除步骤:

我最初认为它与存储库中的 setup.py 有关,其中包含在 Jenkins 本地主机上安装 Python 的说明,但当我查看日志时发现它来自正在安装的库模块。

因此尝试将安装程序包从 pip 更改为 pip3,看看这是否有帮助,但仍然出现相同的错误。(根据为类似问题提供的早期答案,因此认为版本不匹配可能是问题所在,因此尝试更新安装)

认为代码大部分有效,因为 python 安装是由管道进程触发的,但无法下载安装所需的包。

这是否与我的网络访问问题类似,因为我正在尝试使用管道在本地主机上配置Python,所以它应该是一个干净的安装和配置应该由管道完成(并且Python的先前版本不应与安装)

python jenkins-pipeline cicd
1个回答
0
投票

错误由于 scipy 的 setup.py 中使用了

imp
模块。 imp 模块已在
Python 3.4

中删除

scipy
升级到不使用已弃用的 imp 模块的版本。例如,尝试在您的
scipy>=1.4.0
中使用
requirements/prod.txt

将需求文件中的

scipy
版本修改为更新版本,然后再次运行
pip install
命令。

© www.soinside.com 2019 - 2024. All rights reserved.