导入Jenkins主目录之外的模块

2024-04-18 02:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图运行位于'/home/modules/module.py'的自定义Python模块

python脚本由Jenkins运行,位于'/home/user_name/scripts/script.py'

既然Jenkins主目录是'/var/lib/Jenkins',如何导入我的模块?在

我尝试在python脚本中添加以下内容:

import sys
sys.path.insert(0,'/home/modules') """also /home/modules/"""

import module

但我仍然收到错误:

^{pr2}$

我在Ubuntu14.04和Python2.7中运行所有的东西

编辑:

我把Jenkins的用户目录改成这样:

root@dwh-01:~$ usermod -m -d /home/jenkins jenkins 

/etc/default/jenkins中修饰{}

我想我可以解决这个问题,但现在的问题是,如果我登录到jenkins shell并执行以下操作:

jenkins@dwh-01:/$ cd
bash: cd: jenkins/: No such file or directory

cd命令的行为是否应该将我指向/home/jenkins/? 如果我在/home/中重复相同的操作,它仍然有效。在

如果我试着启动詹金斯,它会给我:

  • Starting Jenkins Continuous Integration Server jenkins No directory, logging in with HOME=/

编辑-2:

用户jenkins home dir错误已修复,我只是使用usermod -d /home/jenkins jenkins确保用户的主目录是/home/jenkins

我离导入模块又近了一步,但是在jenkins主目录之外还有一个问题。在


Tags: 模块用户pyimport脚本modules编辑home
2条回答

好吧,终于弄明白了。 我所做的是将/etc/default/jenkins文件中的变量JENKINS_USERJENKINS_GROUP更改为我需要在JENKINS用户文件夹之外的用户(在/var/lib/jenkins之外)。在

这样,Jenkins运行的脚本将像我指定的选定用户一样运行。在

之后,我意识到在Jenkins中,即使工作目录是/var/lib/jenkins/jobs/adjust_data_parser/workspace,脚本和文件也可以从'/调用

所以诀窍是:

-访问jenkins主目录之外的脚本

从模块导入的绝对路径。在

您应该有两个选项允许您将module导入到代码中。在

选项1

import sys
sys.path.append('/home/modules')
import module

选项2

^{pr2}$

如果这两种方法都不管用,希望它们至少能为你和其他人指明正确的方向。在

相关问题 更多 >