How to install python-ldap on a python 2.7 virtualenv on windows without compiling

11,018

How about installing it system-wide, creating an egg from installed files and then using that egg in your virtual env? You can find some info about egg structure here: http://pythonhosted.org/setuptools/formats.html

Share:
11,018
Serafeim
Author by

Serafeim

Serafeim S. Papastefanos received his Diploma (2005) and Phd (2010) in EE from the National Technical University of Athens. He has been awarded for his academic progress from State Scholarships Foundation (SSF). His research interests include network management, network protocols, video coding, video indexing and video streaming. Since then he is working as a Software Engineer, starting from automating business processes with the Appian platform (heavy usage of Java/Javascript) and continuing with Django web development. He also keeps a small blog about various programming stuff @ http://spapas.github.io/ SOreadytohelp

Updated on July 26, 2022

Comments

  • Serafeim
    Serafeim almost 2 years

    I am using Windows as my main python 2.7 development environment and I want to install python-ldap on a virtual environment.

    The python-ldap package needs compiling :( and of course I can't compile it in my environment. So I tried finding binaries in order to install them in my virtual environment through easy_install (FYI you can do easy_install package.exe and the package will be installed). I found the distributed binaries here: https://pypi.python.org/pypi/python-ldap/

    Unfortunately, they give only .msi packages for python 2.7 !!! Why do people use .msi ? MSI CANNOT BE INSTALLED THROUGH easy_install. I HATE MSI %$#$^#$^#$

    Yes I can install the .msi package by executing it but it will be installed in the global python packages and not on my virtual environment!

    Please, can anybody help me ? I remember having this exact problem in a previous project and I had to develop it outside of a virtual environment -- but I cannot do this now :(

    Update: I installed python-ldap system-wide and copied the directories ldap and python_ldap-2.4.10-py2.7.egg-info from PYTHON_GLOBAL\Lib\site-packages to VIRTUALENV\Lib\site-packages and seems to be working now. However I really don't like that solution so I won't answer my question with that. Also, Alexander's comment on recreating my virtualenv with --system-site-packages probably will be working but this means that I'd need to uninstall a lot of my global packages packages and then install again my virtual packages etc and in general it's not DRY :(

    Update 2: After trying cgohlke's suggestion, I saw that the contents of the MSI were the two directories I mentioned above along with the files dsml.py, ldapurl.py and ldif.py. So I also copied this to my VIRTUALENV\Lib\site-packages. Now I believe that the installation is ok :). But I believe that cgohlke's is the best one - just use msiexec.exe to extract the contents of the msi directly to your VIRTUALENV.

    Update 3: In a similar question (Installing python-ldap in a virtualenv on Windows) I found a really interesting link: http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap. In there you will be able to find .EXE install packages for python-ldap and LOTS of others!!! So finally by downloading these you'll be able to easy_install them in your virtualenv!