首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ModuleNotFoundError:没有名为“version”的模块

ModuleNotFoundError:没有名为“version”的模块
EN

Stack Overflow用户
提问于 2020-01-08 02:41:18
回答 2查看 3.2K关注 0票数 0

我将Python3和SOAPpy库与我的代码结合使用。当我尝试运行我的代码时,我一直收到一个"ModuleNotFoundError: No module named 'version'“错误。错误来自库中的以下特定行:

from version import __version__

我如何修复这个错误?

EN

回答 2

Stack Overflow用户

发布于 2020-01-08 03:11:55

人们通常在模块中设置变量__version__,以便让世界可以检查它,它甚至有一个PEP

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

您可以看到here包确实有一个定义__version__变量的version模块。我不知道你是如何在你的项目中包含这个包的,但是我会解释一些关于导入的东西,你可以阅读更多的here

有罪的线可以有两个选项

代码语言:javascript
运行
复制
from .version import __version__ # relative import

from SOAPpy.version import __version__ # absolute import

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

它们都很好,但有时到处重复SOAPpy就太麻烦了。

让我们修改这行代码,让它有一个相对的导入

代码语言:javascript
运行
复制
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,我会得到一个不同的错误

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
virtualenv env --python=python2
source env/bin/activate
python setup.py install

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

票数 1
EN

Stack Overflow用户

发布于 2020-01-08 02:52:27

SOAPpy (pypy)似乎是一个用于python2的过时的库,这就是为什么库中的一些代码会产生这些错误。您可能会更幸运地使用Zeep -一种兼容python3的现代SOAP客户端。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59634273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档