导入python模块失败

时间:2014-11-04 14:04:15

标签: python jenkins

我无法导入此模块,不确定问题是什么,当我输入:help(' modules')时,它会在那里列出。当我尝试导入其他模块时,我没有收到此错误。

~$ python
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import jenkinsapi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/jenkinsapi/__init__.py", line 65, in <module>
    __version__ = pkg_resources.working_set.by_key['jenkinsapi'].version
KeyError: 'jenkinsapi'

3 个答案:

答案 0 :(得分:5)

Centos 6.4,Python 2.6.6,jenkinsapi 0.2.25来自pip并且得到了同样的错误。

我发现jenkinsapi坚持(延迟)python标准pep-396,似乎根据this post来自其中一个项目的补充是最新的贡献者。

当您的控制台输出显示jenkinsapi时,init正在尝试从pkg_resources已知的设置__version__。我能够确认在我的情况下pkg_resources.working_set没有加载jenkinsapi尽管sys.path正确包括它所在的site-packages目录。但是,和你一样,它正在寻找我刚刚安装的其他模块。这对我来说真的好像是一个混乱的蟒蛇 在深入挖掘之前我做了一个&#34; pip uninstall jenkinsapi&#34;并且在预感中我尝试了文档中列出的其他安装方法; &#34; easy_install jenkinsapi&#34;。
这为我解决了。

答案 1 :(得分:1)

在此处提交此错误 - https://github.com/salimfadhley/jenkinsapi/issues/333

通过pip安装0.2.22按预期工作,因此另一种解决方案是使用旧版本。

答案 2 :(得分:1)

我正面临着类似的问题,现在使用unittest有一个不太好的解决方法。

import unittest
test_loader = unittest.defaultTestLoader.discover(start_dir= '.', pattern='test_controller.py')
test_runner = unittest.runner.TextTestRunner()
result = test_runner.run(test_loader).wasSuccessful()

不好但是这意味着我可以调用一个存根,该存根又调用从Git中提取的主代码。 存根包含一个标准的unittest.testCase派生类。

相关问题