Python 如何在virtualenv中安装Win32 COM模块?

Python 如何在virtualenv中安装Win32 COM模块?,python,virtualenv,pywin32,Python,Virtualenv,Pywin32,我已经在我的Windows7 64位笔记本电脑上安装了virtualenv和pywin32,它们似乎都可以工作,但不能相互配合 更具体地说,如果virtualenv处于活动状态,则在python交互式shell中运行导入win32com.client会失败,因为没有名为win32com.client的模块。但是,如果没有virtualenv处于活动状态,则相同的表达式会成功 当我尝试使用pip安装pywin32时(这是我在virtualenv处于活动状态时通常安装模块的方式),我会收到以下错误:

我已经在我的Windows7 64位笔记本电脑上安装了
virtualenv
pywin32
,它们似乎都可以工作,但不能相互配合

更具体地说,如果virtualenv处于活动状态,则在python交互式shell中运行
导入win32com.client
会失败,因为
没有名为win32com.client的模块。但是,如果没有virtualenv处于活动状态,则相同的表达式会成功

当我尝试使用
pip
安装
pywin32
时(这是我在virtualenv处于活动状态时通常安装模块的方式),我会收到以下错误:

  Could not find any downloads that satisfy the requirement pywin32
No distributions at all found for pywin32
…即使
pywin32
是的输出中列出的模块之一

pip search pywin32
因此,要安装
pywin32
,我必须使用从SourceForge下载的*.exe安装程序进行安装

有没有办法在virtualenv中安装
pywin32

  • 启用您的virtualenv
  • pip安装--无索引--查找链接:/local/dir/SomePackage
  • 查看#8 on(抱歉,没有永久链接)/

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

    这将在虚拟病毒中工作,或与tox等一起工作


    这行下面是我以前的答案。这是过时的信息

    旧答案——过时了。virtualenv的现代版本默认为--无站点包。这意味着不能访问全局站点包现在是默认行为。 遗憾的是,(截至2014年7月),您无法将pywin32安装到您的VirtualNV中。() 如果要在virtualenv中运行pywin32,请激活virtualenv并使用easy_install和pywin32 installer exe文件。例如 轻松安装“C:\Path\To\Downloads\pywin32-219.win32-py3.4.exe”


    创建一个virtualenv并激活它:
    
    cd c:\Users\ernesto.luzon
    virtualenv--无站点包py351env
    py351env\Scripts\activate
    

    在这里,您有两个选择:

  • 从sourceforge项目下载pywin32:

  • 从非官方(但非常有用)二进制站点下载pywin32:

  • 请确保为安装在您的环境中的Python解释器下载了正确的版本,否则稍后会遇到问题

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

    如果从gohlke下载,请使用pip安装:
    
    (py351env)C:\Users\ernesto.luzon\Downloads>pip安装pywin32-220-cp35-none-win\u amd64.whl
    

    如果以后遇到错误,您需要执行以下附加步骤:

    运行安装后脚本:
    
    (py351env)C:\Users\ernesto.luzon>python py351env\Scripts\pywin32\u postinstall.py-install
    已将pythoncom35.dll复制到C:\Users\ernesto.luzon\py351env\pythoncom35.dll
    已将pywintypes35.dll复制到C:\Users\ernesto.luzon\py351env\pywintypes35.dll
    ....
    

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

    pip安装pypiwin32
    可能会工作。可能与我获取的导入内容重复错误:DLL加载失败:找不到指定的模块。(Win2012R2上的Python 3.5.2 32位virtualenv)不工作<代码>未找到pywin32>=223(来自pypiwin32)的匹配发行版
    对于Anaconda上的发行版:只需执行
    conda安装pywin32
    pip install pypiwin32