gpt4 book ai didi

python - Jenkins:将我的 Python 模块放在 PYTHONPATH 上

转载 作者:太空狗 更新时间:2023-10-30 02:12:52 25 4
gpt4 key购买 nike

我正在使用 Jenkins 测试 Python 模块 nodepy我开发的。但是,我收到如下错误:

File "/var/lib/jenkins/jobs/NodePy/workspace/convergence.py", line 6, in workspace.convergence
Failed example:
from nodepy import rk, convergence, ivp
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.7/doctest.py", line 1289, in __run
compileflags, 1) in test.globs
File "<doctest workspace.convergence[0]>", line 1, in <module>
from nodepy import rk, convergence, ivp
ImportError: No module named nodepy

如何在 Jenkins 中设置 PYTHONPATH(以便我的模块可导入)?

我什至不确定应该添加哪个目录。似乎 Jenkins 把东西放在 jenkins/jobs/nodepy/workspace/中,所以该目录甚至没有正确的名称让 python 找到它。

编辑:

python 模块 nodepy是一个 git 存储库,我已将我的 jenkins 作业配置为监视和 checkout 。

最佳答案

  • 将其添加到您的参数化作业参数列表(并填写或提供默认值)
  • 或者如果您有 jenkins 的管理员权限,您可以将它添加到那里的系统变量中(转到Manage Jenkins,然后是System Configuration)
  • 或在您的脚本中使用 sys.path.append

例如

import sys
import os
# jenkins exposes the workspace directory through env.
sys.path.append(os.environ['WORKSPACE'])
import nodepy

或者,在您的 jenkins 构建配置中,配置构建步骤(如果它是一个 shell 脚本):

export PYTHONPATH=$WORKSPACE:$PYTHONPATH

包问题

/var/lib/jenkins/jobs/NodePy/workspace/convergence.py

这是个问题,因为没有nodepy目录。所以即使你输入了正确的系统路径,你的包结构也不会正确。你可以做的是改变你的工作空间的样子,从:

/var/lib/jenkins/jobs/NodePy/workspace/convergence.py
/var/lib/jenkins/jobs/NodePy/workspace/ivp.py
/var/lib/jenkins/jobs/NodePy/workspace/rk.py

/var/lib/jenkins/jobs/NodePy/workspace/nodepy/__init__.py
/var/lib/jenkins/jobs/NodePy/workspace/nodepy/convergence.py
/var/lib/jenkins/jobs/NodePy/workspace/nodepy/ivp.py
/var/lib/jenkins/jobs/NodePy/workspace/nodepy/rk.py

编辑:在正确的子目录中提取文件

你的工作空间将是

/var/lib/jenkins/jobs/NodePy/workspace/

您不需要更改工作区目录,它是根据您的作业名称 (NodePy) 和您的 jenkins 配置键入的,您只需要创建 nodepy 工作区中的目录,并将您的文件放在那里。您可以 change your jenkins job configuration并让它检查正确子目录中的 git repo nodepy 或者您可以自己移动文件:

mkdir .nodepy
# .nodepy is hidden, * doesn't capture hidden files.
mv * .nodepy
mv .nodepy nodepy

关于python - Jenkins:将我的 Python 模块放在 PYTHONPATH 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com