问题
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!
回答1:
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
来源:https://stackoverflow.com/questions/15918188/how-to-install-python-ldap-on-a-python-2-7-virtualenv-on-windows-without-compili