18

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

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

当我尝试安装pywin32pip(这是我通常在 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 安装程序来安装它。

有没有办法pywin32在 virtualenv 中安装?

4

3 回答 3

34

2016 年更新

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

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

pip install pypiwin32

这将在 virtualenv 或 tox 等中工作。


这条线下面是我以前的旧答案。那是现在过时的信息。

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

相关问题

于 2014-07-03T05:36:45.947 回答
6

尝试这个:

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

查看pip-installer.org上的 #8 (抱歉没有永久链接)/

于 2013-02-16T19:02:39.427 回答
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 Interpreter 下载正确的版本,否则稍后您将遇到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

于 2016-02-09T12:25:48.303 回答