人们通常在模块中设置变量__version__ 以使其可用于
要检查的世界,它甚至有一个PEP!
我不确定您指的是哪一行,但 are many 在 SOAPpy 包中具有相同的罪证导入。
您可以看到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。玩得开心!