Python脚本无法在不同位置找到导入模块

时间:2013-08-29 13:45:08

标签: python bash python-2.7 jenkins cygwin

所以,我有一个运行我的Jenkins构建的python构建脚本。有几个子脚本可以导入。它们存储在源代码管理的目录中 - 对于每个作业,创建一个快照视图,其中包含整个目录结构,包括此文件夹。

运行此脚本有超过一百个单独的作业,在Jenkins构建步骤中传递给它的命令行选项不同。有两个我从python脚本“没有名为foo的模块”

中得到导入错误

在调查时,我去了存储位置并运行了脚本,它运行起来了。快照视图保存在网络位置,因此位于S:\ this_job_name \ scripts中。然而,意识到jenkins从bash(cygwin)调用脚本,我继续前进并切换到\ server \ this_job_name \ scripts并再次运行python build.py。这次我得到了名为foo的no模块。

我更改了脚本以打印工作目录及其列表(模块在列表中)并在import语句之前打印sys.path(模块的目录首先在列表中)(仍然失败)。如果我切换到交互模式,我可以导入模块。

我真的很茫然 - 完全相同的东西在目录\ server \ other_job \ scripts和\ serve \ yet_another_job \ scripts中有效。我注意到的唯一不同的是,两个失败的作业在jenkins(以及目录路径中)中具有两个最长的作业名称。 python查找长文件名的能力是否有限制?我还应该知道其他明显的东西吗?

0 个答案:

没有答案