Lines Matching +full:version +full:- +full:script
9 ----------------------
11 ----------------------
14 specific version of a Python project, comprising its code, resources,
25 code and resources, along with an ``EGG-INFO`` subdirectory that
28 2. ``.egg-info`` format: a file or directory placed *adjacent* to the
33 static data files, package and non-package directories, Python
37 The ``.egg`` format is well-suited to distribution and the easy
39 self-contained within a single directory or file, unmingled with any
44 The ``.egg-info`` format, on the other hand, was created to support
45 backward-compatibility, performance, and ease of installation for system
47 to a single directory (e.g. ``site-packages``). Placing the metadata
53 uninstallation or upgrades, and of course only a single version of a
56 command refers to this type of egg installation as "single-version,
60 location, but it cannot do this for ``.egg-info`` installs, because
62 egg -- there may be several eggs "scrambled" together in a single
63 installation location, and the ``.egg-info`` format does not currently
65 in a future version.)
78 For the ``.egg-info`` format, however, the base location is the
79 directory that *contains* the ``.egg-info``, and thus it is the
83 ``.egg-info`` file or directory installed alongside of it.)
94 For the ``.egg`` format, the metadata is placed in an ``EGG-INFO``
96 ``.egg-info`` format, metadata is stored directly within the
97 ``.egg-info`` directory itself.
100 Python ``PKG-INFO`` file, named ``PKG-INFO`` and placed within the
102 this to be the only metadata file included, ``.egg-info`` format eggs
103 are not required to be a directory; they can just be a ``.egg-info``
104 file that directly contains the ``PKG-INFO`` metadata. This eliminates
108 ``.egg-info`` files, either; the support for using files was added so
112 In addition to the ``PKG-INFO`` file, an egg's metadata directory may
115 below) or user-defined metadata required by the project. For example,
121 Filename-Embedded Metadata
125 inter-project dependencies, a certain amount of information is embedded
127 ideally will also include the project version number. Optionally, it
128 can also include the target Python version and required runtime
129 platform if platform-specific C code is included. The syntax of an
132 name ["-" version ["-py" pyver ["-" required_platform]]] "." ext
134 The "name" and "version" should be escaped using the ``to_filename()``
141 The "pyver" string is the Python major version, as found in the first
142 3 characters of ``sys.version``. "required_platform" is essentially
148 Finally, the "ext" is either ``.egg`` or ``.egg-info``, as appropriate
152 version, as this allows the runtime system to find desired project
153 versions without having to read the egg's PKG-INFO to determine its
154 version number.
156 Setuptools, however, only includes the version number in the filename
158 an ``.egg-info`` directory is being installed by the
161 directory will not have to be renamed each time the project's version
164 This is especially important when version numbers change frequently, and
165 the source metadata directory is kept under version control with the
167 includes project-defined metadata that is not generated from by
168 setuptools from data in the setup script.)
174 In addition to the ``.egg`` and ``.egg-info`` formats, there is a third
175 egg-related extension that you may encounter on occasion: ``.egg-link``
180 location. They exist primarily as a cross-platform alternative to
185 plugin directory, running "setup.py develop -md /path/to/app/plugins"
186 will install an ``.egg-link`` file in ``/path/to/app/plugins``, that
188 project source directory and its ``.egg-info`` subdirectory).
190 ``.egg-link`` files are named following the format for ``.egg`` and
191 ``.egg-info`` names, but only the project name is included; no version,
192 Python version, or platform information is included. When the runtime
193 searches for available eggs, ``.egg-link`` files are opened and the
196 Each ``.egg-link`` file should contain a single file or directory name,
199 should be the parent directory of one or more ``.egg-info`` format eggs.
201 As of setuptools 0.6c6, the path may be specified as a platform-independent
202 (i.e. ``/``-separated) relative path from the directory containing the
203 ``.egg-link`` file, and a second line may appear in the file, specifying a
204 platform-independent relative path from the egg's base directory to its
205 setup script directory. This allows installation tools such as EasyInstall
210 -----------------
212 -----------------
214 In addition to the minimum required ``PKG-INFO`` metadata, projects can
218 in the setup script or through analysis of the project's code and
221 Most of these files and directories are generated via "egg-info
228 EGG-INFO Files") to cause setuptools to generate project-specific
247 sections, using square-bracketed section headers akin to Windows
263 ----------------
287 ----------------------
294 ------------------------
303 ``depends.txt`` -- Obsolete, do not create!
304 -------------------------------------------
311 without overwriting an existing hand-created ``depends.txt``, if one
312 was already present in the project's source ``.egg-info`` directory.
315 ``namespace_packages.txt`` -- Namespace Package Metadata
324 ``entry_points.txt`` -- "Entry Point"/Plugin Metadata
355 scripts to the local script installation directory, EasyInstall writes
358 depends on. For more about `script wrappers`_, see the section below on
367 -------------------
370 the egg, one per line. Paths are ``/``-separated and relative to the
382 -----------------------
386 ``/``-separated and relative to the egg's base location.
395 ``zip-safe`` and ``not-zip-safe``
396 ---------------------------------
398 These are zero-length files, and either one or the other should exist.
399 If ``zip-safe`` exists, it means that the project will work properly
401 ``not-zip-safe`` means the project should not be installed as an
408 to assuming that the project should be unzipped. (Command-line options
410 ``zip-safe`` or ``not-zip-safe`` file.)
418 ``top_level.txt`` -- Conflict Management Metadata
421 This file is a list of the top-level module or package names provided
432 (It was also once used to detect conflicts with non-egg packages at
434 in such a way that they always override non-egg packages, thus
438 ``SOURCES.txt`` -- Source Files Manifest
445 converted back to a platform-specific path whenever they are read.
449 user-editable.
453 that setuptools-built *source* distributions can correctly discover
466 ------------------------------
468 ------------------------------
478 existing libraries -- whether in Python or C -- that require actual
479 operating system filenames, and do not work with arbitrary "file-like"
480 objects or in-memory strings, and thus cannot operate directly on the
497 ----------------------
521 -------------------------
523 Since Python's built-in zip import feature does not support loading
530 package directory (or top-level directory) within the zipfile, so that
543 C extensions take precedence over same-named Python modules, so the
551 version and installation platform, as well as how Python was started
552 (i.e., script vs. ``-c`` vs. ``-m`` vs. interactive interpreter).
557 However, with no cross-platform way to safely and persistently change
563 after any locally-installed ``site-packages`` directory, and they are
564 only processed *in* the ``site-packages`` directory to start with.
571 anything that's installed in the systemwide ``site-packages``, because
572 their paths will still be added *after* ``site-packages``.
579 and the local ``site-packages`` directories. Thus, it is always
580 possible for a user who can write a Python-read ``.pth`` file to ensure
584 a "site" directory like ``site-packages``) EasyInstall will also install
585 a special version of the ``site`` module. Because it's in a
587 standard library version of ``site`` does. It will record the state of
593 ``.pth``-prescribed sequence.
598 1. The ``sys.argv[0]`` directory, or an empty string if no script
608 directory (such as ``site-packages``), following the same ordering
628 distutils-SIG mailing list:
630 * http://mail.python.org/pipermail/distutils-sig/2006-February/006026.html
631 * http://mail.python.org/pipermail/distutils-sig/2006-March/006123.html
634 Script Wrappers
635 ---------------
638 a script installation directory. Instead, it writes short wrapper
640 on sys.path, before invoking the original script. These wrappers
641 have a #! line that points to the version of Python that was used to
643 the type of script wrapper, the project version required for the script
644 to run, and information identifying the script to be invoked.
648 "# EASY-INSTALL-" script_type ": " tuple_of_strings "\n"
650 The ``script_type`` is one of ``SCRIPT``, ``DEV-SCRIPT``, or
651 ``ENTRY-SCRIPT``. The ``tuple_of_strings`` is a comma-separated
652 sequence of Python string constants. For ``SCRIPT`` and ``DEV-SCRIPT``
653 wrappers, there are two strings: the project version requirement, and
654 the script name (as a filename within the ``scripts`` metadata
655 directory). For ``ENTRY-SCRIPT`` wrappers, there are three:
656 the project version requirement, the entry point group name, and the
657 entry point name. (See the "Automatic Script Creation" section in the
660 In each case, the project version requirement string will be a string
662 classmethod. The only difference between a ``SCRIPT`` wrapper and a
663 ``DEV-SCRIPT`` is that a ``DEV-SCRIPT`` actually executes the original
664 source script in the project's source tree, and is created when the
665 "setup.py develop" command is run. A ``SCRIPT`` wrapper, on the other
666 hand, uses the "installed" script written to the ``EGG-INFO/scripts``
668 (``.egg-info`` eggs do not have script wrappers associated with them,
671 The purpose of including the marker line in generated script wrappers is