【问题标题】:how to automatically update pyserial to latesT?如何自动将pyserial更新为latesT?
【发布时间】:2016-07-25 19:41:36
【问题描述】:

我有以下代码在 pyserial 版本低于 2.7 时引发异常,如何以编程方式运行 pip install pyserial --upgrade 以自动更新到最新版本并确保其安装正确?

   if py_ser_ver < 2.7:
      raise StandardError("PySerial version 2.7 or greater is required. Your version is: " + serial.VERSION)

【问题讨论】:

  • 恕我直言,您正在做的是最好的选择。如果用户没有禁用它的选项,自动更新就不好了。

标签: python


【解决方案1】:

使用 os.system('python -m pip install pyserial --upgrade') 或使用子进程

安装完成后,使用 python -m pip list 命令检查。即使 pip 不在路径中,这也会起作用。

import os
import subprocess

a = os.system('python -m pip install pyserial --upgrade')
if a == 0:
    d = subprocess.Popen('python -m pip list', stdout = subprocess.PIPE).communicate()
    if 'pyserial' in d[0]:
        print 'success'

【讨论】:

  • 这将不起作用,除非 pip 在路径中(例如,它不在我的系统上)并且您不在代理后面。
  • @RedX 修改了我对 Python -m pip 的回答,即使 pip 不在路径中也可以使用。
  • 现在python必须在路径中。
  • @RedX 是的,python 应该在系统路径中。要运行 python 脚本,python 无论如何都必须成为系统路径的一部分。我正在做这个基本假设,即用户将把 python 添加到系统路径中。
猜你喜欢
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 2019-12-12
  • 2021-04-10
  • 1970-01-01
相关资源
最近更新 更多