【问题标题】:How to install win32com module in a virtualenv?如何在 virtualenv 中安装 win32com 模块?
【发布时间】:2013-02-01 13:03:24
【问题描述】:

我在我的 Windows 7 64 位笔记本电脑上安装了 virtualenvpywin32,它们似乎都可以工作,但不能相互配合。

更具体地说,如果 virtualenv 处于活动状态,则在 python 交互式 shell 中运行 import win32com.client 会失败并显示 No module named 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

【问题讨论】:

标签: python virtualenv pywin32


【解决方案1】:

2016 年更新

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

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

pip install pypiwin32

这将在 virtualenv 或 tox 等中工作。


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

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

Related question

【讨论】:

  • 我收到 ImportError: DLL load failed: 找不到指定的模块。 (Win2012R2上的Python 3.5.2 32bit virtualenv)
  • 不工作。 No matching distribution found for pywin32>=223 (from pypiwin32)
【解决方案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

确保为你的环境中安装的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

【讨论】:

    【解决方案3】:

    试试这个:

    1. Download directly
    2. 启用您的虚拟环境
    3. pip install --no-index --find-links:/local/dir/ SomePackage

    pip-installer.org 上查看#8(抱歉没有固定链接)/

    【讨论】:

    • 对于 Anaconda 上的用户:只需 conda install pywin32
    猜你喜欢
    • 2017-07-05
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2019-10-26
    • 2012-04-26
    • 2011-04-20
    • 2016-08-30
    相关资源
    最近更新 更多