Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
fd87b121
Commit
fd87b121
authored
Aug 30, 1997
by
Guido van Rossum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Document newly revamped site configuration mechanism.
Damn the criticism in c.l.p!
parent
d5bd4e92
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
126 additions
and
38 deletions
+126
-38
Doc/lib/libsite.tex
Doc/lib/libsite.tex
+63
-19
Doc/libsite.tex
Doc/libsite.tex
+63
-19
No files found.
Doc/lib/libsite.tex
View file @
fd87b121
...
...
@@ -2,29 +2,73 @@
\label
{
module-site
}
\stmodindex
{
site
}
Scripts or modules that need to use site-specific modules should
execute
\code
{
import site
}
somewhere near the top of their code. This
will append up to two site-specific paths (
\code
{
sys.prefix +
'/lib/site-python'
}
and
\code
{
sys.exec
_
prefix + '/lib/site-python'
}
) to the module search path.
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
are configured when Python is installed; the default value is
\file
{
/usr/local
}
.
Because of Python's import semantics, it is okay for more than one
module to import
\code
{
site
}
-- only the first one will execute the
site customizations. The directories are only appended to the path if
they exist and are not already on it.
Sites that wish to provide site-specific modules should place them in
one of the site specific directories;
\code
{
sys.prefix +
'/lib/site-python'
}
is for Python source code and
\code
{
sys.exec
_
prefix + '/lib/site-python'
}
is for dynamically
loadable extension modules (shared libraries).
\strong
{
This module is automatically imported during initialization.
}
In earlier versions of Python (up to and including 1.5a3), scripts or
modules that needed to use site-specific modules would place
\code
{
import site
}
somewhere near the top of their code. This is no
longer necessary.
This will append up site-specific paths to to the module search path.
It starts with
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
(if
different) and appends
\file
{
lib/python
\var
{
version
}
/packages
}
. The
resulting directory, if it exists, is added to
\code
{
sys.path
}
, and
also inspected for path configuration files. A path configuration
file is a file whose name has the form
\file
{
\var
{
package
}
.pth
}
; its
contents are additional directories (one per line) to be added to
\code
{
sys.path
}
. Non-existing directories (or non-directories) are
never added to
\code
{
sys.path
}
; no directory is added to
\code
{
sys.path
}
more than once. Blank lines and lines beginning with
\code
{
\#
}
are skipped.
\index
{
package
}
\kwindex
{
sys.prefix
}
\kwindex
{
sys.exec
_
prefix
}
\kwindex
{
prefix
}
\kwindex
{
exec
_
prefix
}
For example, suppose
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
are
set to
\file
{
/usr/local
}
. The Python 1.5 library is then installed in
\file
{
/usr/local/lib/python1.5
}
. Suppose this has a subdirectory
\file
{
/usr/local/python1.5/packages
}
with three subsubdirectories,
\file
{
foo
}
,
\file
{
bar
}
and
\file
{
spam
}
, and two path configuration
files,
\file
{
foo.pth
}
and
\file
{
bar.pth
}
. Assume
\file
{
foo.pth
}
contains the following:
\bcode
\begin{verbatim}
# foo package configuration
foo
bar
bletch
\end{verbatim}
\ecode
and
\file
{
bar.pth
}
contains:
\bcode
\begin{verbatim}
# bar package configuration
bar
\end{verbatim}
\ecode
Then the following directories are added to sys.path, in this order:
\bcode
\begin{verbatim}
/usr/local/python1.5/packages/bar
/usr/local/python1.5/packages/foo
\end{verbatim}
\ecode
Note that
\file
{
bletch
}
is omitted because it doesn't exist; the
\file
{
bar
}
directory precedes the
\file
{
foo
}
directory because
\file
{
bar.pth
}
comes alphabetically before
\file
{
foo.pth
}
; and
\file
{
spam
}
is omitted because it is not mentioned in either path
configuration file.
After these path manipulations, an attempt is made to import a module
named
\code
{
sitecustomize
}
, which can perform arbitrary site-specific
customizations. If this import fails with an
\code
{
ImportError
}
exception, it is ignored.
exception, it is silently ignored.
\stmodindex
{
sitecustomize
}
Note that for non-Unix systems,
\code
{
sys.prefix
}
and
Note that for
some
non-Unix systems,
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
are empty, and the path manipulations are
skipped; however the import of
\code
{
sitecustomize
}
is still attempted.
Doc/libsite.tex
View file @
fd87b121
...
...
@@ -2,29 +2,73 @@
\label
{
module-site
}
\stmodindex
{
site
}
Scripts or modules that need to use site-specific modules should
execute
\code
{
import site
}
somewhere near the top of their code. This
will append up to two site-specific paths (
\code
{
sys.prefix +
'/lib/site-python'
}
and
\code
{
sys.exec
_
prefix + '/lib/site-python'
}
) to the module search path.
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
are configured when Python is installed; the default value is
\file
{
/usr/local
}
.
Because of Python's import semantics, it is okay for more than one
module to import
\code
{
site
}
-- only the first one will execute the
site customizations. The directories are only appended to the path if
they exist and are not already on it.
Sites that wish to provide site-specific modules should place them in
one of the site specific directories;
\code
{
sys.prefix +
'/lib/site-python'
}
is for Python source code and
\code
{
sys.exec
_
prefix + '/lib/site-python'
}
is for dynamically
loadable extension modules (shared libraries).
\strong
{
This module is automatically imported during initialization.
}
In earlier versions of Python (up to and including 1.5a3), scripts or
modules that needed to use site-specific modules would place
\code
{
import site
}
somewhere near the top of their code. This is no
longer necessary.
This will append up site-specific paths to to the module search path.
It starts with
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
(if
different) and appends
\file
{
lib/python
\var
{
version
}
/packages
}
. The
resulting directory, if it exists, is added to
\code
{
sys.path
}
, and
also inspected for path configuration files. A path configuration
file is a file whose name has the form
\file
{
\var
{
package
}
.pth
}
; its
contents are additional directories (one per line) to be added to
\code
{
sys.path
}
. Non-existing directories (or non-directories) are
never added to
\code
{
sys.path
}
; no directory is added to
\code
{
sys.path
}
more than once. Blank lines and lines beginning with
\code
{
\#
}
are skipped.
\index
{
package
}
\kwindex
{
sys.prefix
}
\kwindex
{
sys.exec
_
prefix
}
\kwindex
{
prefix
}
\kwindex
{
exec
_
prefix
}
For example, suppose
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
are
set to
\file
{
/usr/local
}
. The Python 1.5 library is then installed in
\file
{
/usr/local/lib/python1.5
}
. Suppose this has a subdirectory
\file
{
/usr/local/python1.5/packages
}
with three subsubdirectories,
\file
{
foo
}
,
\file
{
bar
}
and
\file
{
spam
}
, and two path configuration
files,
\file
{
foo.pth
}
and
\file
{
bar.pth
}
. Assume
\file
{
foo.pth
}
contains the following:
\bcode
\begin{verbatim}
# foo package configuration
foo
bar
bletch
\end{verbatim}
\ecode
and
\file
{
bar.pth
}
contains:
\bcode
\begin{verbatim}
# bar package configuration
bar
\end{verbatim}
\ecode
Then the following directories are added to sys.path, in this order:
\bcode
\begin{verbatim}
/usr/local/python1.5/packages/bar
/usr/local/python1.5/packages/foo
\end{verbatim}
\ecode
Note that
\file
{
bletch
}
is omitted because it doesn't exist; the
\file
{
bar
}
directory precedes the
\file
{
foo
}
directory because
\file
{
bar.pth
}
comes alphabetically before
\file
{
foo.pth
}
; and
\file
{
spam
}
is omitted because it is not mentioned in either path
configuration file.
After these path manipulations, an attempt is made to import a module
named
\code
{
sitecustomize
}
, which can perform arbitrary site-specific
customizations. If this import fails with an
\code
{
ImportError
}
exception, it is ignored.
exception, it is silently ignored.
\stmodindex
{
sitecustomize
}
Note that for non-Unix systems,
\code
{
sys.prefix
}
and
Note that for
some
non-Unix systems,
\code
{
sys.prefix
}
and
\code
{
sys.exec
_
prefix
}
are empty, and the path manipulations are
skipped; however the import of
\code
{
sitecustomize
}
is still attempted.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment