| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Python bindings for the XML Security Library.
Documentation for xmlsec can be found at xmlsec.readthedocs.io.
Check the examples section in the documentation to see various examples of signing and verifying using the library.
xmlsec is available on PyPI:
pip install xmlsecDepending on your OS, you may need to install the required native libraries first:
apt-get install pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-opensslNote: There is no required version of LibXML2 for Ubuntu Precise, so you need to download and install it manually.
wget http://xmlsoft.org/sources/libxml2-2.9.1.tar.gz
tar -xvf libxml2-2.9.1.tar.gz
cd libxml2-2.9.1
./configure && make && make installyum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-develdnf install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-develbrew install libxml2 libxmlsec1 pkg-configor
port install libxml2 xmlsec pkgconfigapk add build-base openssl libffi-dev openssl-dev libxslt-dev libxml2-dev xmlsec-dev xmlsecxmlsec passes lxml XML nodes to the underlying xmlsec1 library. Both libraries use libxml2, so they must use compatible libxml2 versions at runtime. If lxml is installed from a wheel that bundles one libxml2 version while xmlsec is built against another system libxml2, importing or using xmlsec can fail with:
xmlsec.InternalError: (-1, 'lxml & xmlsec libxml2 library version mismatch')
The most reliable fixes are:
Use prebuilt wheels for both lxml and xmlsec when wheels are available for your platform:
pip install --only-binary=lxml,xmlsec lxml xmlsecIf you need to build from source, build both packages against the same locally installed libxml2:
pip install --no-binary=lxml,xmlsec lxml xmlsecDo not mix a wheel-built lxml with a locally built xmlsec, or the other way around, unless you know they use the same libxml2 version.
An lxml release upgrade does not by itself mean xmlsec is incompatible; this error is about the libxml2 libraries loaded in that environment.
If the error appears only under uWSGI, uWSGI may have loaded the system libxml2 before Python imports lxml or xmlsec. In that case, make sure uWSGI and the Python packages resolve to the same libxml2, or rebuild the Python packages from source in that environment. If you use uv, clear any cached mixed builds before reinstalling. For example, to reinstall from wheels:
uv pip uninstall lxml xmlsec
uv cache clean
uv pip install --only-binary lxml --only-binary xmlsec lxml xmlsecFor background, see issue #356 and the uWSGI edge case in issue #415.
If you get any fatal errors about missing .h files, update your C_INCLUDE_PATH environment variable to include the appropriate files from the libxml2 and libxmlsec1 libraries.
Starting with 1.3.7, prebuilt wheels are available for Windows, so running pip install xmlsec should suffice. If you want to build from source:
Configure build environment, see wiki.python.org for more details.
Install from source dist:
pip install xmlsec --no-binary=xmlsecClone the xmlsec source code repository to your local computer.
git clone https://github.com/xmlsec/python-xmlsec.gitChange into the python-xmlsec root directory.
cd /path/to/xmlsecInstall the project and all its dependencies using pip.
pip install .Follow steps 1 and 2 of the manual installation instructions.
Initialize a virtual environment to develop in. This is done so as to ensure every contributor is working with close-to-identical versions of packages.
mkvirtualenv xmlsecThe mkvirtualenv command is available from virtualenvwrapper package which can be installed by following link.
Activate the created virtual environment:
workon xmlsecInstall xmlsec in development mode with testing enabled. This will download all dependencies required for running the unit tests.
pip install -r requirements-test.txt
pip install -e "."Run the unit tests.
pytest testsTests configuration
Env variable PYXMLSEC_TEST_ITERATIONS specifies number of test iterations to detect memory leaks.
Please attach the output of following information:
version of xmlsec
version of libxmlsec1
version of libxml2
output from the command
pkg-config --cflags xmlsec1Unless otherwise noted, all files contained within this project are licensed under the MIT open source license. See the included LICENSE file or visit opensource.org for more information.
| Back | FazBrowse Home | New Git URL |