Is the Python standard library really standard?

早过忘川 提交于 2019-12-19 19:49:40

问题


Is the Python standard library standard in the sense that if Python is installed, then the standard library is installed too?

The documentation reads

For Unix-like operating systems Python is normally provided as a collection of packages, so it may be necessary to use the packaging tools provided with the operating system to obtain some or all of the optional components.

The standard library index only lists as optional the "Optional Operating System Services", as far as I can tell.

So, is everything else always available on a platform, if Python is installed? If not, what can be expected on the most common ones (Windows, Mac OS X, Linux)?

PS: I am teaching a Python class to graduate students, and I would love to be able to tell them that Python always comes with batteries included; this is of practical importance, for them (when they arrive in a new lab, or use a new machine, it is useful for them to know what to expect in terms of standard modules availability).


回答1:


It's not a Python issue. You can teach that the batteries are included. They are.

It's the distributions that are incomplete.

We've been unhappy with the Red Hat Enterprise Linux having old versions of Python. However, there are recipes for upgrades.

It's a common security practice to turn off all developer packages, leaving Python incomplete. This is a common situation outside Python and outside the essential Linux distribution.

Batteries are included under normal circumstances. But, it's also very easy to strip some or all of the batteries. And many organizations will -- for a variety of reasons -- create incomplete libraries.

It's not Python. It's the environments that are incomplete.




回答2:


Generally yes -- everything not listed in the optional section will always be available.

These are some of the things that may vary from OS to OS installation: http://docs.python.org/library/someos.html

You probably won't use these unless you're doing fairly advanced programming.




回答3:


It depends on the distribution packager. For example on Debian the profiling modules profile and cprofile are installed separately as python-profiler. Other modules may be separated like this too on different distributions.



来源:https://stackoverflow.com/questions/3807111/is-the-python-standard-library-really-standard

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!