我已经在我的Windows 7 64位笔记本电脑上安装了virtualenv
和pywin32
,并且每个笔记本电脑似乎都可以正常工作,但彼此之间没有。
更具体地说,如果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
?
答案 0 :(得分:33)
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”
答案 1 :(得分:6)
试试这个:
pip install --no-index --find-links:/local/dir/ SomePackage
查看pip-installer.org上的#8(抱歉没有永久链接)/
答案 2 :(得分:2)
创建virtualenv并激活它:
cd c:\Users\ernesto.luzon
virtualenv --no-site-packages py351env
py351env\Scripts\activate
从这里,您有两种选择:
从sourceforge项目下载pywin32: http://sourceforge.net/projects/pywin32/files/pywin32/
从非官方(但非常有用)的二进制站点下载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