eGenix PyRun Change Log

Enhancements / Changes

Removed lzma module from PyRun for Python 3.x again, since
this caused too many issues with incompatible/missing libzma.so
references. The module is still being built as optional add-on and can
be used if the necessary libs are available, but it will no longer
prevent PyRun from working altogether.

Enhancements / Changes

Enhancements / Changes

Upgraded eGenix PyRun to work with and use Python 2.7.11 per
default. Python 2.7.11 now uses computed gotos in the interpreter loop,
adding some more performance. In addition, the vulnerable SSLv3 protocol
was switched off in the defaults of the ssl module.

Upgraded eGenix PyRun to work with and use Python 3.4.4 for the Python 3 version.

Added an explicit --libpath configure setting to work a problem
with some 64-bit platforms defaulting to lib64/. The new setting forces
the libs to always go into a lib/ directory.

Enhancements / Changes

Upgraded eGenix PyRun to work with and use Python 2.7.10 per default.

eGenix PyRun will now adjust sys.base_prefix and
sys.base_exec_prefix in the same way it does for sys.prefix and
sys.exec_prefix. This is needed for Python 3.4 in order to have distutils find the Python.h include file when compiling C extensions.

PyRun for Python 3.4 will now show the correct file name of scripts in
tracebacks when running them directly, instead of just '<string>'.

The new internal _sysconfigdata module used by the
sysconfig module is now patched with the eGenix PyRun config data as
well, to make sure that PyRun doesn't ship with two sets of build config
variables.

Add support for more Python command line options: -s and -3
are ignored,
-R raises an error explaining to use the PYTHONHASHSEED env var
instead, -B prevents writing of byte code files.This should increase
compatibility of PyRun with the standard Python command line interface.

New Features

Note that it is still possible to override this by setting
PYTHONIOENCODING to some other value. The locale based approached used
by standard Python can be reenabled by setting PYTHONIOENCODING to "".

Enabled the lib2to3 package to work with eGenix PyRun. This
allows on-the-fly Python 3 conversions as used by e.g. the setuptools
package to work with eGenix PyRun.

Added grammar files to pyrun so that lib2to3 can be used for
on-the-fly translations during installation. setuptools needs this for
Python 3 support.

Added list of available lib2to3 fixes to the pyrun_config module.
This allows lib2to3.refactor.get_all_fix_names() to work wit pyrun.

Frozen modules in eGenix PyRun now always have the __file__ attribute
set - unlike in standard Python, where this is not set (e.g.
in Python 3.4), or set to some value that doesn't relate to the module
(in Python 2.x). This increases compatibility of pyrun with existing Python software. Submitted as http://bugs.python.org/issue21736

Added work-around for getting runpy.run_path() to work with frozen
modules in Python 3. This is needed to be able to run packages and ZIP
files directly from the command line. Submitted as http://bugs.python.org/issue21737

Updated install-pyrun to default to eGenix PyRun 2.0.0 and its feature set.

install-pyrun now supports setuptools 2.0+ for Python 2.6 and 2.7

install-pyrun will no longer install the latest versions of pip and setuptools
due to recent incompatible changes in those packages. Instead, the
script uses fixed defaults and makes it easy to override them.

install-pyrun now uses pip 1.4.1 and setuptools 2.1 per default instead of the latest versions for better backwards compatibility with packages not hosted on PyPI.

install-pyrun can optionally fetch the latest versions of pip and setuptools by using "latest" as version number for --pip-version and --setuptools-version.

install-pyrun script is now available in signed and hashed form for additional security.

Made sure that install-pyrun will install pip and setuptools
versions compatible with Python 2.5 when using --python=2.5
--pyrun=1.3.1 (ie. for the older version of eGenix PyRun).

New Features

PyRun will now create a symlink from "pyrunX.X" to "pythonX.X" and
"pyrunX.X" to "python" in the bin/ dir to enhance compatibility with
scripts and applications that hardwire the name of the Python
interpreter to "python".

install-pyrun now defaults to always installing the most recent setuptools and pip versions from PyPI.

install-pyrun now installs setuptools instead of distribute, after the
two projects got merged and continued under the older name.

Added new option --pyrun-executable to define an
alternative name for the executable, which is then also used when
installing setuptools and pip, e.g. "python" for even better
compatibility with standard Python.

install-run will now prefer curl over wget when downloading packages from PyPI.

install-pyrun local distribution options will now also work with relative paths.

install-pyrun now defaults to installing setuptools 1.1.1 and pip 1.4.1 when looking for local downloads of these tools.

The short options in install-pyrun now also have corresponding long option names.

Other Changes

Fixed SyntaxWarning in pyrunX.X: name 'pyrun_script' is assigned to before global declaration global pyrun_script

New Features

Upgraded eGenix PyRun to work with and use Python 2.7.4 per default.

Changed the pyrun default to run in non-optimized mode and added the
-O command line option to reenable it. Previous versions of eGenix
PyRun used to default to optimized mode, which prevented running tests
using e.g. assert with it. The stdlib itself is still frozen
in optimized mode.

Added support for directly running Python directories and ZIP files
with __main__ module. Only works with the Python 2.7 variant.

eGenix PyRun now honors symlinks, so symlinked copies of PyRun can be
used to save disk space. The installations will still work as expected,
i.e. independent of each other.

Added new pyrun_release config variable to the pyrun_config module. This allows checking the pyrun release version.

install-pyrun will now use HTTPS connections for all tools (pyrun, distribute and pip). SSL certificate checking is enabled per default, but can be turned off using the new --disable-certificate-checks option.

Added automatic support for wget to install-pyrun. It is being used if curl is not found on the system.

Added new option --platform-list to print a list of available platform strings.

Other Changes

Removed the compiler package from being compiled into PyRun. If
needed, it can be installed separately. Note that the compiler package
needs the parser module which is not compiled into PyRun either, but is
still available as extension module.

Removed the Tkinter Python module from being compiled into PyRun. If
needed, it can be installed separately. Note that the Tkinter module
needs the _tkinter C module, which is not compiled into PyRun either,
but is still available as extension module.

Fixed sys.argv when using interactive mode to default to [''].

All eGenix PyRun distribution packages are now GPG signed with our release key and come with MD5 and SHA1 hashes to check for download corruption.

New Features

Added new simple end-to-end test for the PyRun build process: make test-distribution.

Added support to import top-level frozen modules via -m. For packages this still fails due to bugs in Python itself.

Added a new easy to use pyrun installation shell script: install-pyrun.

install-pyrun will now default to eGenix PyRun 1.1.0.

install-pyrun now has a new --pyrun-distribution option to
manually direct the script to a distribution file. This comes in handy
when testing your own eGenix PyRun distributions.

Enhanced Integration

Optional readline module included in our binary builds now
links against readline version 6 instead of 5. This should resolve
readline issues on modern Linux installations.

Resolved an issue related to sys.argv[0] that prevented
installation of e.g. numpy and lxml with pyrun. We've tested PyRun
installation with numpy, lxml, Cython, Django, Trac and several other popular packages. They should all install fine now.

PyRun now reads scripts from stdin when used as filter or when providing '-' as script name.

Other Changes

Documented that setuptools/distribute and pip are not designed to be relocatable - unlike PyRun itself.

Most references to the pyrun build directory are now replaced with "<pyrun>". This reduces the pyrun binary size and also avoids confusion when looking at tracebacks.

Backported a patch to have Python 2.5 compile on systems that have a more recent version of svnversion installed.

We've managed to push the size down from 12MB in 1.0.0 to 11MB in this new release.