rlaager at wiktel.com
Sat Dec 9 17:57:05 UTC 2017
On 12/08/2017 11:33 PM, Gary E. Miller via devel wrote:
> On Fri, 8 Dec 2017 22:40:55 -0600
> Richard Laager <rlaager at wiktel.com> wrote:
>> On 12/08/2017 09:20 PM, Gary E. Miller via devel wrote:
>>> By Debian rules, ulness you do some sort of over-ride, '.waf
>>> install' should never, ever, install into dist-packages.
>> You're still misunderstanding. Debian has just renamed "site-packages"
>> to "dist-packages".
> Uh, no. You have both.
The distro allows for that, generally. But I don't. I have not build
Python itself from source. The point of changing site-packages to
dist-packages is so that a source build of Python itself does not
conflict with the distro-package of Python itself.
> From the Debian doc: https://wiki.debian.org/Python
> "dist-packages instead of site-packages. Third party Python software
> installed from Debian packages goes into dist-packages, not
> site-packages. This is to reduce conflict between the system Python,
> and any from-source Python build you might install manually."
"from-source" modifies "Python", in contrast to "Third party Python
In other words, if I install NTPsec from source, but using the
distro-packaged Python, it goes to:
If I install Python from source, it is obviously not patched to use
dist-packages, and continues to use the default of site-packages. Then
NTPsec from source using that from-source Python, installs to:
s/site/dist/ is to accommodate building Python itself from source and
installing *that* in parallel to the distro-python.
Installing Python from source on Debian is a corner case, but in any
event, it Just Works.
> Here I see how Debian Python differs from upstream Python:
> "Note that /usr/local/lib/pythonX.Y/dist-packages is in sys.path
> so that modules not installed from Debian packages can still be
> accessed by the system Python."
> So, another diffreence in how Debian uses dist-packages unlike how
> Python uses site-packages.
Not PYTHONPATH, sys.path.
> outside of Debian does not
> include local site-packages by default.
> Yup, 100% standard, and need PYTHONPATH.
Okay, so upstream Python does not include /usr/local in sys.path by
default. Debian has fixed this obvious error. Fedora said they were
going to (in the bug I linked), but maybe hasn't (per Hal's testing).
I see why there was some desire to install the ntp Python module to
/usr, even when --prefix=/usr/local. I still think that is wrong. Two
wrongs (Python not searching /usr/local by default and ntpsec violating
--prefix) do not make a right.
I again re-iterate my suggestion:
1) Remove the fix_python_config hack.
2) Add a warning if the calculated PYTHONDIR is not in sys.path,
suggesting that the user do one of the following:
A) Create a .pth file in /usr
B) Specify --pythondir=
C) Set PYTHONPATH in their environment
> Got any doc on the .pth file? All the Python doc I have seen
> refers to PYTHONPATH instead.
It's one path per line. Here are the docs:
> And this .pth file would have to be different for different
Yes, slightly. The text of the warning can include the correct paths
(both for the contents of the .pth and the place to create it).
> We gotta do this so it works on the most distros we can.
There is no way to make it work out-of-the-box (where
--prefix=/usr/local) on distros that don't have /usr/local in sys.path.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 455 bytes
Desc: OpenPGP digital signature
More information about the devel