ModuleNotFoundError:没有名为“版本”的模块

时间:2020-01-07 18:41:18

标签: python libraries soappy

我将Python 3和SOAPpy库以及我的代码一起使用。尝试运行代码时,我始终收到“ ModuleNotFoundError: No module named 'version'”错误。错误来自库中的此特定行:

from version import __version__

如何解决该错误?

2 个答案:

答案 0 :(得分:0)

SOAPpypypy)似乎是供python2使用的过时的库,这就是为什么库中的某些代码会产生这些错误的原因。使用Zeep(一种与SOAP python3兼容的现代客户端)可能会更好。

答案 1 :(得分:0)

人们通常在模块中设置变量__version__,以使其可用于 要检查的世界,它甚至有PEP

我不确定您所指的是哪一行,但是在SOAPpy包中有are many具有相同的导入含义。

您可以看到here,该软件包确实具有定义了version变量的__version__模块。我不知道您如何在您的项目中包括此软件包,但我将解释有关导入的内容,您可以阅读更多here

判别行可以有两种选择

from .version import __version__ # relative import

from SOAPpy.version import __version__ # absolute import

您可以将它们读取为“路径”,第一个是当前目录中的version.py文件,第二个是SOAPpy目录中的version.py文件。

它们都很好,但是有时在所有地方重复使用SOAPpy太麻烦了。

让我们将行固定为相对导入

diff --git a/SOAPpy/__init__.py b/SOAPpy/__init__.py
index 0e039f8..832a560 100644
--- a/SOAPpy/__init__.py
+++ b/SOAPpy/__init__.py
@@ -1,15 +1,15 @@

 ident = '$Id: __init__.py,v 1.9 2004/01/31 04:20:06 warnes Exp $'
-from version import __version__
+from .version import __version__

-from Client      import *
-from Config      import *
-from Errors      import *
-from NS          import *
-from Parser      import *
-from SOAPBuilder import *
-from Server      import *
-from Types       import *
-from Utilities     import *
+from .Client      import *
+from .Config      import *
+from .Errors      import *
+from .NS          import *
+from .Parser      import *
+from .SOAPBuilder import *
+from .Server      import *
+from .Types       import *
+from .Utilities     import *
 import wstools
 import WSDL

实际上,现在如果我运行python setup.py install,我会得到另一个错误

Traceback (most recent call last):
  File "setup.py", line 8, in <module>
    from SOAPpy.version import __version__
  File "/home/edoput/repo/SOAPpy/SOAPpy/__init__.py", line 5, in <module>
    from .Client      import *
  File "/home/edoput/repo/SOAPpy/SOAPpy/Client.py", line 95
    raise IOError, "unsupported SOAP protocol"
                 ^
SyntaxError: invalid syntax

因此,确实该库尚未升级为使用python3可能是一个问题!

让我们改用python2,即使we should not

virtualenv env --python=python2
source env/bin/activate
python setup.py install

现在一切都可以正确安装,该库最近肯定没有更新,您仍然可以使用它,但必须坚持使用python 2.7。玩得开心!

相关问题