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.
Best,
Wolfgang
--
https://mail.python.org/mailman/listinfo/python-list