On Fri, Dec 13, 2019 at 10:10:03PM +0100, Andreas Tille wrote: > i$ pdb2pqr > Traceback (most recent call last): > File "/usr/bin/pdb2pqr", line 52, in <module> > from main import mainCommand > File "/usr/share/pdb2pqr/main.py", line 77, in <module> > import extensions > File "/usr/share/pdb2pqr/extensions/__init__.py", line 56, in <module> > extDict[extName] = __import__(extName,globals(),locals(),[], -1) > ValueError: level must be >= 0 """ level specifies whether to use absolute or relative imports. The default is -1 which indicates both absolute and relative imports will be attempted. 0 means only perform absolute imports. Positive values for level indicate the number of parent directories to search relative to the directory of the module calling __import__(). """ https://docs.python.org/2.7/library/functions.html#__import__ -1 was removed in 3.3 as implicit relative import are not supported in 3.x. As this code seems to use relative imports you need to change -1 to 1. > So I tried: > > --- a/extensions/__init__.py > +++ b/extensions/__init__.py > @@ -53,7 +53,7 @@ _extList = [name for _, name, _ in pkgutil.iter_modules(__path__)] > extDict = {} > > for extName in _extList: > - extDict[extName] = __import__(extName,globals(),locals(),[], -1) > + extDict[extName] = __import__(extName,globals(),locals(),[], 0)^M Mindlessly changing the code is almost always a bad idea... > File "/usr/share/pdb2pqr/extensions/__init__.py", line 57, in <module> > extDict[extName] = __import__(extName,globals(),locals(),[], 0) > ModuleNotFoundError: No module named 'chi' This is expected as it now tries to do "import chi". With 1 it should try "from . import chi". This fails later, as the source also has implicit relative imports that needs to be fixed, for example "from aconf import" in src/utilities.py. -- WBR, wRAR
Attachment:
signature.asc
Description: PGP signature