Python 如何自动更新pywin32?

Python 如何自动更新pywin32?,python,github,pip,pywin32,Python,Github,Pip,Pywin32,据我所知,不能使用pip安装/升级pywin32,尽管pip安装-U pypiwin32是一种解决方法 pywin32现在托管在上。我对git知之甚少,但知道它可以处理二进制文件。有没有办法以编程方式升级pywin32二进制文件?也就是说,假设pywin32v221与Python v.3.6(64位)一起安装,该程序应检查GitHub上的最新版本(v223),并下载pywin32-223.win-amd64-py3.6.exe,然后安装它。到目前为止,我只能想到一个类似于web抓取的脚本,它将安

据我所知,不能使用pip安装/升级
pywin32
,尽管
pip安装-U pypiwin32
是一种解决方法

pywin32
现在托管在上。我对
git
知之甚少,但知道它可以处理二进制文件。有没有办法以编程方式升级
pywin32
二进制文件?也就是说,假设
pywin32
v221与Python v.3.6(64位)一起安装,该程序应检查GitHub上的最新版本(v223),并下载
pywin32-223.win-amd64-py3.6.exe
,然后安装它。到目前为止,我只能想到一个类似于web抓取的脚本,它将安装的版本与web上的最新版本进行比较,并据此采取行动。我想知道是否有一个简单的解决方案。

你可以使用它,但它已经过时了

因此,脚本解决方案(对于其他程序,但具有类似的想法)是可能的。另请参见。

如果你想在任何地方解压,并使用,你将可以访问200多个Linux命令,包括
awk
head
,等等。

我可能遗漏了一些关键的东西,否则(几乎)问题中的每一个陈述/假设似乎都不正确:

  • 可以使用pip安装/升级
  • 用于承载源代码(主要是)。那里的资产是Mark Hammond的Win安装程序(因为在pip诞生之前很久,pywin32就托管在上),我想它们只是为了向后兼容而构建的
  • pip不下载pywin32二进制文件,而是从
  • 为了演示上述内容,我创建了一个VirtualEnv,并在此基础上执行了一系列步骤:

    • python和pip可执行文件位置/版本
    • pip测试(使用pip列出pywin32版本)-无输出(未安装pywin32)
    • pywin32下载和URL显示
    • pywin32安装(稍后测试升级的旧版本)
    • pip试验
    • pywin32测试(使用pywin32列出pywin32版本)
    • pywin32升级
    • pip试验
    • pywin32测试
    输出

    (py36x64_test)e:\Work\Dev\StackOverflow\q049398198>其中python pip
    c:\Work\Dev\VEnvs\py36x64\u test\Scripts\python.exe
    c:\Work\Dev\VEnvs\py36x64\u test\Scripts\pip.exe
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>python-c“导入系统;打印(系统版本)”
    3.6.3(v3.6.3:2c5fed8,2017年10月3日,18:11:49)[MSC v.1900 64位(AMD64)]
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>pip-V
    c:\work\dev\venvs\py36x64\u test\lib\site包(python 3.6)中的pip 9.0.3
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>rem pip测试
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>pip列表2>nul | findstr pywin32
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>pip下载-vvv pywin32 2>nul | findstr/i下载
    下载pywin32-223-cp36-cp36m-win_amd64.whl(9.0MB)
    从URL下载https://pypi.python.org/packages/9f/9d/f4b2170e8ff5d825cd4398856fee88f6c70c60bce0aa8411ed17c1e1b21f/pywin32-223-cp36-cp36m-win_amd64.whl#md5=2d211288ee000b6ec5d37436bcbe8a43 (来自https://pypi.python.org/simple/pywin32/)
    已成功下载pywin32
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>pip安装https://pypi.python.org/packages/be/25/0e0c568456b77ce144dd2b8799f915b046ffa1cd922771d214e4be05bca2/pywin32-222-cp36-cp36m-win_amd64.whl#md5=94a9a3782081e14973c5ae448957d530 2> 努尔
    正在从中收集pywin32==222https://pypi.python.org/packages/be/25/0e0c568456b77ce144dd2b8799f915b046ffa1cd922771d214e4be05bca2/pywin32-222-cp36-cp36m-win_amd64.whl#md5=94a9a3782081e14973c5ae448957d530
    下载pywin32-222-cp36-cp36m-win_amd64.whl(9.0MB)
    100%|##############################
    安装收集的软件包:pywin32
    已成功安装pywin32-222
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>rem pip测试
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>pip列表2>nul | findstr pywin32
    pywin32(222)
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>rem pywin32测试
    (py36x64测试)e:\Work\Dev\StackOverflow\q049398198>python-c“将win32api作为wapi导入;打印(wapi.GetFileVersionInfo(wapi.GetFileVersionInfo,wapi
    222
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>pip安装-U pywin32 2>nul
    收集pywin32
    使用缓存的pywin32-223-cp36-cp36m-win_amd64.whl
    安装收集的软件包:pywin32
    找到现有安装:pywin32 222
    正在卸载pywin32-222:
    已成功卸载pywin32-222
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>rem pip测试
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>pip列表2>nul | findstr pywin32
    pywin32(223)
    (py36x64_测试)e:\Work\Dev\StackOverflow\q049398198>rem pywin32测试
    (py36x64测试)e:\Work\Dev\StackOverflow\q049398198>python-c“将win32api作为wapi导入;打印(wapi.GetFileVersionInfo(wapi.GetFileVersionInfo,wapi
    223
    

    不幸的是,
    pywin32
    恰好是不支持发布的版本之一。也就是说,
    https://api.github.com/mhammond/pywin32/releases/latest
    给出“未找到”。有解决这个问题的想法吗?有趣的方法,比我的答案更准确+谢谢你,@VonC!我记得我使用pip安装了pywin32,但我没有时间测试升级是否也能正常工作。@CristiFati在我将
    pip
    升级到9.0.3之后,我也可以
    pip安装pywin32
    。我用的是一个旧版本,但它不能。我用的是9.0.3(更新了答案)。但是我也能够使用PIP9.0.1(Python3.5)安装pywin32,我没有一个旧的。即使你的pip真的很老了,也无法解释。您是否能够使用旧的pip安装其他软件包?或者可能是在您尝试.whl时还没有(发布)吗?@CristiFati您可能是对的,当我执行
    pip安装时,.whl不在那里-U