如何在virtualenv中安装win32com模块?

时间:2013-02-16 18:24:25

标签: python virtualenv pywin32

我已经在我的Windows 7 64位笔记本电脑上安装了virtualenvpywin32,并且每个笔记本电脑似乎都可以正常工作,但彼此之间没有。

更具体地说,如果virtualenv处于活动状态,那么在python交互式shell中运行import win32com.client将失败并显示No module named win32com.client。但是,如果没有virtualenv处于活动状态,则相同的表达式会成功。

当我尝试使用pywin32安装pip时(我通常在virtualenv处于活动状态时安装模块),我收到错误:

  Could not find any donwloads that satisfy the requirement pywin32
No distributions at all found for pywin32

...即使pywin32

输出中列出的模块之一
pip search pywin32

因此,要安装pywin32 我必须使用从SourceForge下载的* .exe安装程序来安装它。

  

有没有办法在virtualenv中安装pywin32

3 个答案:

答案 0 :(得分:33)

2016年更新

PyPI上现在有一个pywin32版本,可以用pip安装。它被称为pypiwin32,它使用二进制wheel格式安装包。

https://pypi.python.org/pypi/pypiwin32

pip install pypiwin32

这将适用于virtualenv,或者使用tox等。


这条线下面是我以前的老答案。现在已经过时了。

  

老答案 - 已过时。现代版本的virtualenv默认为--no-site-packages。这意味着无法访问全局站点包现在是默认行为。    可悲的是,(截至2014年7月)你不能将pywin32安装到你的virtualenv中。 (here's the bug report)    如果你想在virtualenv中运行pywin32,请激活virtualenv并使用easy_install和pywin32安装程序exe文件。例如        easy_install“C:\ Path \ To \ Downloads \ pywin32-219.win32-py3.4.exe”

Related question

答案 1 :(得分:6)

试试这个:

  1. Download directly
  2. 启用您的virtualenv
  3. pip install --no-index --find-links:/local/dir/ SomePackage
  4. 查看pip-installer.org上的#8(抱歉没有永久链接)/

答案 2 :(得分:2)

创建virtualenv并激活它: cd c:\Users\ernesto.luzon virtualenv --no-site-packages py351env py351env\Scripts\activate

从这里,您有两种选择:

  1. 从sourceforge项目下载pywin32: http://sourceforge.net/projects/pywin32/files/pywin32/

  2. 从非官方(但非常有用)的二进制站点下载pywin32: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

  3. 确保为您环境中安装的Python解释器下载正确的版本,否则稍后会遇到ImportError: DLL load failed: %1 is not a valid Win32 application

    如果您从sourceforge下载,请使用easy_install进行安装: (py351env) C:\Users\ernesto.luzon\Downloads>easy_install pywin32-220.win-amd64-py3.5.exe

    如果您是从gohlke下载的,请使用pip进行安装: (py351env) C:\Users\ernesto.luzon\Downloads>pip install pywin32-220-cp35-none-win_amd64.whl

    如果您稍后遇到ImportError: DLL load failed: The specified module could not be found错误,则需要执行以下附加步骤:

    运行安装后脚本: (py351env) C:\Users\ernesto.luzon>python py351env\Scripts\pywin32_postinstall.py -install Copied pythoncom35.dll to C:\Users\ernesto.luzon\py351env\pythoncom35.dll Copied pywintypes35.dll to C:\Users\ernesto.luzon\py351env\pywintypes35.dll ....

    注意它复制'pythoncom35.dll'和'pywintypes35.dll'文件的位置。您需要将这些文件移动到该文件夹​​: C:\Users\ernesto.luzon\py351env\Lib\site-packages\win32