Python 如何将pywin32与VirtualEnvironment一起使用,而不必包括主机环境';s站点包文件夹?
我在Python2.6下工作,这只是部分支持,因为MS使用manifest nonense创建的混乱现在影响Python,因为它现在是MSVC8编译的 问题在于,清单嵌入支持依赖于扩展来构建,这是一个痛苦的过程,因为在我创建时,如果不包括主机的site packages文件夹(这有点违背构建环境中的观点),我无法找到安装所需扩展的方法,以便PyInstaller可以访问这些扩展Python 如何将pywin32与VirtualEnvironment一起使用,而不必包括主机环境';s站点包文件夹?,python,winapi,virtualenv,pyinstaller,Python,Winapi,Virtualenv,Pyinstaller,我在Python2.6下工作,这只是部分支持,因为MS使用manifest nonense创建的混乱现在影响Python,因为它现在是MSVC8编译的 问题在于,清单嵌入支持依赖于扩展来构建,这是一个痛苦的过程,因为在我创建时,如果不包括主机的site packages文件夹(这有点违背构建环境中的观点),我无法找到安装所需扩展的方法,以便PyInstaller可以访问这些扩展 有人找到了解决这个问题的办法吗 好吧,既然我必须找到前进的道路,我就即兴发挥。我已经在内部创建了一个git存储库,其中
有人找到了解决这个问题的办法吗 好吧,既然我必须找到前进的道路,我就即兴发挥。我已经在内部创建了一个git存储库,其中包含一个经过黑客攻击的pywin32版本,该版本将使用标准的
setup.py
脚本安装在virtualenv中。为了使它正常工作,我做了很多修改,但我设法让它加载,依赖代码现在可以按我需要的方式工作了。如果人们认为这对社区有好处,请发表评论:如果我得到足够的信息,我会尝试在我的github帐户上添加一些内容。我发现(现在是一个死链接),它提供了以下解决方案:
easy\u安装http://PATH.TO/EXE/DOWNLOAD
如果您使用的是旧版本的setuptools(或将其分发并合并回setuptools),则可能会收到以下错误消息: 错误:c:\users\blah\appdata\local\temp\easy\u install-ibkzv7\pywin32-214.win32-py2.6.exe不是有效的distutils Windows.exe 在这种情况下:
easy\u安装下载的\u FILE.exe
我很希望尝试“pip安装”而不是“easy_安装”,但这不起作用,而且可能永远不会起作用(需要引用)
最后,我找到了一个解决方案,但尚未测试该解决方案: 通过将pywin32.pth文件复制到我的virtualenv站点包中解决了这个问题 并编辑文件以指向路径
如果其他选项对您不起作用,也许这会起作用?这可能比上一个答案有所改进,因为我已经在多台机器的沙盒上成功安装了pywin32,而没有任何特定的“黑客”: 在以下环境下进行测试:
- 视窗7
- 吉特
- 使用virtualenv的python 2.7.10
- VS2008。它可能也可以用(但我还没有测试过)
警告:--upgrade进程当前失败,因为卸载过程本身无法清理(清理win32api.pyd时拒绝访问)-这仅在删除临时目录时发生,临时目录可以手动删除。最简单的方法是卸载并重新安装,而不是升级,然后手动删除临时文件夹。对于Python 2.7或3.x,请使用
pip安装pypiwin32
具体来说,下载pywin32.exe安装程序,然后在.exe文件上执行easy\u install-Z
。-Z
可能不是必需的,但我总是这么做。@KevinHorn:不,你说得对,-Z不是必需的,我只是试过而已。谢谢使用“简易安装”,在内部工作良好virtualenv@tovmeod这是一个很好的观点,现在Distribute和setuptools已经合并了,这应该很神奇:)我会更新答案。我意识到这是一篇比较老的文章,而且我很少发表这样的文章。。。。但是,我必须说谢谢@d3vid我有一个x64-Win10安装程序,由于愚蠢的注册表错误,我无法安装pywin32。谢谢谢谢。我很想看看那份回购协议。你能至少列出你在回购协议中包含的文件吗?这是一个糟糕的、反社区的回答,而且拥有33k+的声誉,你应该知道得更清楚。“被接受”的答案来自OP,他们说,“没关系,所有帮助过我的人,所有通过谷歌来到这里的人,我都修好了,但我太忙了,没时间告诉你怎么做。”我不讨厌,因为我已经去过那里了。我只是想说出来,因为我希望有人能有礼貌地说出来。这似乎起到了作用,因为它让我克服了错误找不到满足pywin32要求的版本(从版本:)
,这是通过简单的pip安装pywin32
得到的。但是,现在我得到了ImportError:DLL加载失败:找不到指定的模块。
即使我在我的sys.path中看到了win32
。有什么想法吗?
$ virtualenv sandbox
$ sandbox\scripts\activate
(sandbox) $ git clone https://github.com/Travis-Sun/pywin32.git
(sandbox) $ cd pywin32
(sandbox) $ python setup.py install