The eGenix.com mx Base Distribution for Python is a collection of professional quality software tools which enhance Python's usability in many important areas such as fast text searching, date/time processing and high speed data types.
The packages in the distribution have a proven track record of being portable across many Unix and Windows platforms. You can write applications which use the packages on Windows and then run them on Unix platforms without change due to the consistent platform independent interfaces.
We are using the included packages on a daily basis in custom projects, on our own servers
and for client installations. Many large corporations are building
their Python applications on parts of the eGenix.com mx Base
Distribution. It is also included in popular Linux distributions, such as
RedHat, OpenSUSE, Debian, Ubuntu, etc.
The eGenix.com mx Base Distribution contains these open-source Python extensions, all grouped under the top-level mx Python package:
mxDateTime implements three new object types, DateTime, DateTimeDelta and RelativeDateTime and many tools based on these for doing easy conversion between and parsing of various date/time formats.
The main focus is on performance, usability and making sure that date/time values roundtrip safely. The types are also fully interoperable with Python's datetime module and often provide a much more intuitive approach to date/time calculations.
mxTextTools provides several useful functions and types that implement high-performance text parsing, processing and search algorithms.
It includes a Python-programmable very fast state machine, the Tagging Ending, specifically designed for pattern matching and written in highly optimized C for both Unicode and char/byte strings.
mxProxy implements a new proxy type to provide low-level object access control, weak referencing and a cleanup protocol.
It's ideal for use in restricted execution environments.
mxBeeBase is a high performance construction kit for disk based indexed databases. It offers components which you can plug together to easily build your own custom mid-sized databases and comes with ready to use on-disk dictionary implementations.
mxURL provides a new datatype for storing and manipulating URL values as well as helpers related to URL building, encoding and decoding.
mxUID implements a fast mechanism for generating universal identification strings (UIDs).
mxStack implements a fast and memory efficient stack object type.
mxQueue implements a fast and memory efficient queue object type.
mxTools provides a collection of handy functions and objects for every day Python programming. It includes many functions that you've often missed in Python.
The package also includes:
Please refer to the source code of these modules for documentation.
Documentation for the packages included in the eGenix mx Base
Distribution is provided in form of PDF files. These get installed as part of the installation process and reside in the mx/pkgname/Doc/
folders of the respective packages.
You can also download the package documentation or view the files online from their respective product pages.
The eGenix mx Base Distribution is covered by the eGenix.com Public License Agreement 1.1.0 which is an Open Source license based on the CNRI Python license.
In simple words, you are free to use the software without paying fees or royalties as long as you give proper attribution and keep the license document together with the software. Please see the license document for details and consult a lawyer if you have legal questions.
We provide downloads for the following platforms.
Please make sure you download the right distribution archive for your Python installation.
If you want to use easy_install / setuptools / pip for installation, you can use these commands:
easy_install egenix-mx-base
or pip install egenix-mx-base
Please note that you will need a C compiler for this type of installation to work, in case our new web installer cannot find a suitable prebuilt binary.
If you don't have a C compiler available, you can also use our egg builds of the packages. Simply point easy_install
to our egg indexes for UCS2 builds or UCS4 builds:
easy_install -i https://downloads.egenix.com/python/index/ucs2/ egenix-mx-basefor UCS2 builds of Python (this includes all Windows and Mac OS X builds), or
easy_install -i https://downloads.egenix.com/python/index/ucs4/ egenix-mx-basefor UCS4 builds of Python (most Linux and FreeBSD distributions).
If you are using zc.buildout, you only have to register the above PyPI-style index URLs with buildout in the buildout.cfg file and then reference the package by name in the eggs properties.
If you need distribution archives for platforms not mentioned here, please contact support@egenix.com for details. It is very likely that we can find a way to help you.
On Unix it is important to know whether you need to download a
distribution for a narrow Unicode build of Python (UCS2) or a wide
version (UCS4).On Windows, Python is always shipped as UCS2 build.
Most Unixes ship with wide Python builds these days (including RedHat and SuSE). In order to make sure, please run the following command which will tell you what kind of Python installation you have:
python -c "import sys;print(sys.maxunicode<66000)and'UCS2'or'UCS4'"
If you get errors such as "unresolved symbol PyUnicodeUCS2_AsEncodedString" when trying to load an extension from the distribution, you have likely installed an archive for a wrong Unicode version.
Installation of eGenix mx Base is straight forward, since no additional configuration or dependencies have to be taken into account.
We offer several different methods for your convenience:
The web installer is available for download on the product's Python Package Index (PyPI) page. Installation tools will automatically pick up this installer when used without any extra options or URLs.
The web installer will then determine the installation platform,
select the right binary download package and install the corresponding
prebuilt archive for you. If the web installer fails to find a suitable
binary, please try one of the other methods explained below and report
the problem to our support team.
setuptools' easy_install:
easy_install egenix-mx-base
pip installer:
pip install egenix-mx-base
zc.buildout configuration manager:
builout.cfg:
eggs += egenix-mx-base
Download and unzip the installer from PyPI and run:
cd egenix-mx-base-3.2.9
python setup.py install
Installation using the Windows installers is straight forward: just double-click on the installer EXE or MSI file and follow the instructions.
Both installers register the distribution with the Windows software registry, so you can easily uninstall the distribution should you require to do so.
With the new MSI installer you also have the option to run the installer without the GUI or to integrate it into an automatic installation process. Please see the MSI installer documentation on the Python web-site for details.
To uninstall the distribution, please use the standard Windows software registry.
To reduce the number of binaries that we have to create for each release, we have adapted a new generic distribution format that works on all Python platforms: the Prebuilt Distribution Format.
Technically, this format is a standard Python distutils distribution, but with only the build/
directory and without the source tree.
In order to install such a distribution, please follow these instructions:
sudo python setup.py installOn Windows and some other platforms that don't have
sudo
, please run the above without sudo
as administrator or root. The distribution will then be installed into the standard directory
for Python extensions of your Python installation (usually the site-packages/
subdirectory of the Python standard library directory).
To uninstall, follow the same steps as above, but use the command uninstall
instead:
sudo python setup.py uninstall
You will need to be able to sudo on the target machine or know the
root password for the above to work. If you don't have permission to
install packages as root, you can still install the distribution into a
local directory, e.g. ~/lib/python
by using the following installation command:
python setup.py install --home=/home/user/
This will install the distribution into the directory /home/user/lib/python/
.
In order to have Python see this directory and make it useable for
import, you have to adjust the PYTHONPATH environment variable to
include this directory, e.g.
export PYTHONPATH=/home/user/lib/python
To see all the possible installation options, run the install script using the help options:
python setup.py install --help
To uninstall, follow the same steps as above, but use the command uninstall
instead:
sudo python setup.py uninstall --home=/home/user/
To install from source, please unzip the source archive and then run the following command in the distribution directory:
sudo python setup.py install
Please make sure that you are using the Python binary for which you want to install the distribution. The installer will then automatically choose the correct path for the installation.
If you don't have root permissions on the target machine, you can
use the same approach as for the prebuilt distribution outlined above
for a user installation in the /home/user/lib/python
directory:
python setup.py install --home=/home/user/
Please remember to setup the PYTHONPATH to include the /home/user/lib/python
directory:
export PYTHONPATH=/home/user/lib/python
Otherwise, Python won't see the new installation and thus won't be able to import it.
To uninstall, follow the same steps as above, but use the command uninstall
instead of install
.
eGenix offers these support options:
Professional level support for this product as well as all other eGenix products and Python itself is available directly from the developers at eGenix.com.
eGenix.com offers professional consulting services for all questions and tasks around this product, including customized modifications, help with integration and on-site problem solving. Please contact sales@egenix.com for details.
In order for our users to keep in touch and be able to help themselves, we have created the egenix-users user mailing list.
Please see the change log for details regarding changes to the distribution between releases.
The following older releases are still available for download, together with the corresponding documentation: