PTH files: Abs paths not working as expected. Symlinks needed?

Wolfgang Maier wolfgang.maier at biologie.uni-freiburg.de
Wed Feb 15 06:16:39 EST 2017


On 15.02.2017 10:33, poseidon wrote:
> In /usr/lib/python3.6/site-packages I wrote a file tau4.pth. It contains
> the line
>
> /home/poseidon/tau4/swr/py3/src
>
> In /home/poseidon/tau4/swr/py3/src there's an __init__.py file, so it
> should be possible to write
>
> import tau4
>
> in my programs.


No, that's not what you should expect!
A path file contains paths to be added at interpreter startup to the 
package/module search path stored in sys.path. That is, in your example, 
if you put a file tau4.py or a tau4 directory with the __init__.py file 
inside into /home/poseidon/tau4/swr/py3/src, *then* you could import tau4.

> It works, if I set a symlink to /home/poseidon/tau4/swr/py3/src in the
> site-packages dir:
>
> ln -s /home/poseidon/tau4/swr/py3/src /usr/lib/python3.6/site-packages/tau4
>

Well this works because now Python finds (following the symlink) a tau4 
package (i.e., a directory with that name and an __init__.py file 
inside) in /usr/lib/python3.6/site-packages. The .pth file is not 
involved in this at all.

> https://docs.python.org/3.6/library/site.html suggests that PTH files
> only work relative to the site-packages dir. But digging around in e.g.
> StackOverflow I got the impression that absolute paths should work as
> well. If so, what am I doing wrong?
>
> I'm on Arch Linux, Python 3.6.
>
> Kind regards
> Paul
>
>




More information about the Python-list mailing list