waf and Python 3.7
Christian Mauderer
list at c-mauderer.de
Sat Dec 22 19:22:45 UTC 2018
>> First of all: I tried a pdf build. But I receive the same error
>> on a html build.
>
> I do not see this error.
>
>> See attached log for the complete output with python2
>> on the current HEAD (75f24638b3f).
>
> I cannot see what is wrong. There is a waf configure option to add verbose
> levels to `sphinx-build`. I suggest you add '-v -v' to see if it can provide
> some insight to the problem.
>
> The waf script glob's the directory. Is there something in your tree which is
> getting picked up?
Hello Chris,
I found my problem: There is a conf.py in my /usr/bin. A package called
"glusterfs" (not sure when I used or installed that) put it there.
The user/conf.py (like all other <manual>/conf.py) that is used for the
sphinx configuration starts like follows:
import sys, os
sys.path.append(os.path.abspath('../common/'))
from conf import *
My sys.path looks like follows:
['/usr/bin', '/usr/lib/python37.zip', '/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload', '/usr/lib/python3.7/site-packages',
'/usr/lib/python3.7/site-packages/linkgrammar']
With the append, the conf.py in /usr/bin is still the one used first.
Theoretically it is possible to use the following instead of the
sys.path.append:
sys.path.insert(0, os.path.abspath('../common/'))
But that command is not really good either. It would hurt a documented
python behaviour. See https://stackoverflow.com/a/10097543/2229658 and
https://docs.python.org/3/library/sys.html#sys.path. Basically path[0]
should be the path of the script. In this case the script is the
sphinx-builder which is executed from /usr/bin and which calls conf.py
via a exec statement.
Although I have to say that it is really a stupid idea of the glusterfs
packet to install a conf.py into /urs/bin, I don't think that is good
for our build to include that file. There could be a packet called conf
anywhere on a system. It's not a that uncommon name. I did some tests
with relative imports but these failed. Any good idea how a clean and
compatible solution could look like for that problem?
Best regards
Christian
More information about the devel
mailing list