On 15/02/17 14:34, 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.

Thank you, Wolfgang.

Did the following: Put a symlink tau4 in /home/poseidon/tau4/swr/py3/src pointing to this directory. Removed the symlink in the site-packages. Restore the pth file tau4.pth containing the line /home/poseidon/tau4/swr/py3/src.

Worx! Thank you for sheding light on this!

Paul



Best,
Wolfgang



--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to