Required Libraries and Tools - DLR-SC/DataFinder GitHub Wiki
To run and develop the DataFinder the following packages are required:
Core Dependencies
For Windows you need to install MinGW if you want to build PyQt and SIP from source. Read the installation instructions for Windows from SIP and PyQt for more details.
RECOMMENDATION: Don't go throught the trouble to install SIP and PyQt4 from source, but use the PyQt4 installer instead.
Name | Version | Comment | PyPI Package | Ubuntu Package |
---|---|---|---|---|
Python | >= 2.6.4 | python-all | ||
SIP | 4.10 | Only required if you install from source. | SIP | |
PyQt 3 | 3.18.1 | Only required for the administration GUI. | ||
PyQt 4 | >=4.7 | Only required for the data management GUI. RECOMMENDATION: Install from PyQt4 installer | pyqt4-dev-tools, python-qt4 | |
Pyparsing | 1.5.2 | For parsing expressions in the search_support module. |
pyparsing | python-pyparsing |
PyWin32 | 214 | Python for Windows extensions. Only required for Windows (win32). | - | - |
If you have problems to install pywin from the .exe files you can download the wheel format from https://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32 and install with "pip install pywin32-221-cp27-cp27m-win32.whl".
If (on windows) you get the error that either pywintypes27.dll or pythoncom27.dll are not found, make sure that they are available in "C:\Python27\Lib\site-packages\win32\lib" as well as in "C:\Python27\Lib\site-packages\pywin32_system32" (adapt the given example to your Python 2.7 installation).
Persistence Dependencies
At least the WebDAV or Subversion bindings are required.
Name | Version | Comment | PyPI Package | Ubuntu Package |
---|---|---|---|---|
Python WebDAV Library | 0.4.1 | Contains the WebDAV bindings. | python_webdav_library | python-webdav |
pysvn | 1.7.2 | Bindings to Subversion (SVN). | - | python-svn |
PyLucene | 3.3 | Python extension for accessing Java Lucene. | - | - |
pysolr | 3.0.6 | Python client for Apache Solr. | pysolr | - |
Python-LDAP-Modul | 2.3.10 | LDAP access. Only required for authentication against / searching a LDAP repository. | python-ldap | python-ldap |
Paramiko (Requirements: ''Python Cryptography Toolkit'' pycrypto 1.9+) | 1.7.6 | Only required for TSM use. | python-paramiko | paramiko |
Boto for AWS | >=2.0rc1 | Bindings to Amazon Web Services (AWS). | python-boto | boto |
Build Tools
Name | Version | Comment | PyPI Package | Ubuntu Package |
---|---|---|---|---|
generateDS | == 1.20g | Generates Python data structures (e. g. class definitions) from an XML schema. MAKE SURE THAT USE VERSION 1.20g!!! Other versions might cause parsing errors! | generateDS | generateDS |
nose | 0.11.1 | Runs the unit tests. | nose | python-nose |
coverage.py | 3.4 | Creates coverage report. | coverage | coverage |
pylint* | 0.21.1 | Coding style checker. | pylint | pylint |
epydoc | 3.0.1 | Creates the developer documentation. | epydoc | python-epydoc |
bbfreeze | 0.96.5 | This module is needed for making a binary distribution under Windows/Linux. | bbfreeze | bbfreeze |
NSIS-Installer | 2.41 | Used on Windows to create an installer. |
* To make pylint work you have to adapt the required astng module of logilab. Further details can be found here. You should change the following in logilab/astng/builder.py
:
Line 208:
- assert isinstance(member, object)
- object_build_methoddescriptor(node, member)
+ # avoid objects without __name__, they're not what they seem ...
+ # (eg PyQt4.QtCore.pyqtSignal instances)
+ if hasattr(member, "__name__") and hasattr(member, "__doc__"):
+ assert isinstance(member, object)
+ object_build_methoddescriptor(node, member, name)
+ else:
+ attach_dummy_node(node, name, member)
Installing PyPi packages
The PyPI packages can be installed through pip
. To install the generateDS
package for example like this ...
- ... using
pip
:
$ pip install generateDS==1.20g