【发布时间】:2013-04-10 06:05:53
【问题描述】:
我使用 Windows 作为我的主要 python 2.7 开发环境,我想在虚拟环境中安装 python-ldap。
python-ldap 包需要编译:(当然我不能在我的环境中编译它。所以我尝试找到二进制文件以便通过easy_install将它们安装在我的虚拟环境中(仅供参考,你可以做easy_install package.exe并且软件包将被安装)。我在这里找到了分布式二进制文件:https://pypi.python.org/pypi/python-ldap/
不幸的是,他们只为 python 2.7 提供 .msi 包!!!为什么人们使用 .msi ?无法通过 easy_install 安装 MSI。我讨厌微星 %$#$^#$^#$
是的,我可以通过执行 .msi 包来安装它,但它将安装在全局 python 包中,不会在我的虚拟环境中!
拜托,有人可以帮帮我吗?我记得在以前的项目中遇到过这个确切的问题,我不得不在虚拟环境之外开发它——但我现在不能这样做:(
更新: 我在系统范围内安装了 python-ldap 并复制了目录 ldap 和 python_ldap-2.4.10-py2.7.egg-info 从 PYTHON_GLOBAL\Lib\site-packages 到 VIRTUALENV\Lib\site-packages 并且现在似乎正在工作。但是我真的不喜欢那个解决方案,所以我不会用那个来回答我的问题。此外,亚历山大关于使用 --system-site-packages 重新创建我的 virtualenv 的评论可能会起作用,但这意味着我需要卸载很多我的全局包包,然后再次安装我的虚拟包等,一般来说它不是干:(
更新 2: 在尝试 cgohlke 的建议后,我看到 MSI 的内容是我上面提到的两个目录以及文件 dsml.py、ldapurl.py 和 ldif.py。所以我也把它复制到了我的 VIRTUALENV\Lib\site-packages。现在我相信安装没问题:)。但我相信 cgohlke 是最好的 - 只需使用 msiexec.exe 将 msi 的内容直接提取到您的 VIRTUALENV。
更新 3: 在一个类似的问题 (Installing python-ldap in a virtualenv on Windows) 中,我发现了一个非常有趣的链接:http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap。在那里,您将能够找到 python-ldap 和许多其他人的 .EXE 安装包!!!所以最后通过下载这些你就可以在你的 virtualenv 中easy_install他们!
【问题讨论】:
-
一种方法是在系统范围内安装它并使用“--system-site-packages”重新创建您的 virtualenv。
-
是的,这可能会起作用 - 但我不想重新创建我的 virtualenv。
-
尝试提取msi:
msiexec.exe /a python-ldap-2.4.10.win32-py2.7.msi /qn TARGETDIR="C:\Absolute\Path". -
@cgohlke 我认为你的解决方案是最好的 - 你能正确回答它以便我接受吗?谢谢!
-
嗨@Cas,我真的不知道为什么会有差异。 egg-info 和 ldap 都是需要的。无论如何,正如我在 Update 3 中所说,您应该从lfd.uci.edu/~gohlke/pythonlibs 下载
python‑ldap‑2.4.15.win‑amd64‑py2.7.exe,然后只需执行easy_install python‑ldap‑2.4.15.win‑amd64‑py2.7.exe即可安装它。
标签: python virtualenv easy-install python-ldap