我试图设置一个 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的先前版本不应与安装)
错误由于 scipy 的 setup.py 中使用了
imp
模块。 imp 模块已在 Python 3.4
中删除
将
scipy
升级到不使用已弃用的 imp 模块的版本。例如,尝试在您的 scipy>=1.4.0
中使用 requirements/prod.txt
。
将需求文件中的
scipy
版本修改为更新版本,然后再次运行pip install
命令。