On Wednesday, February 15, 2017 at 8:34:45 AM UTC-5, Wolfgang Maier wrote: > On 15.02.2017 13:42, poseidon wrote: > > On 15/02/17 12:16, Wolfgang Maier wrote: > >> 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. > >> > > > > Yes, removed it (symlink still there) and it still works. But then, what > > are pth files for? I'd just place a symlink to the package and am done > > with. The path doesn't seem to be needed in sys.path (where it would go > > if placed in a pth file). If I write > > > > from tau4 import datalogging > > > > that works, too. So no need for the path being in sys.path (i.e. in a > > pth file)? > > > > I guess a major point of .pth files is that you only have one or a small > number of files with a clear purpose polluting the containing directory. > Of course, you could put symlinks to all your packages and modules into > site-packages, but what's the point of putting them somewhere else in > the first place? Also, you cannot create symlinks across devices, but > .pth files will work.
Also, not all operating systems support symlinks. --Ned. -- https://mail.python.org/mailman/listinfo/python-list