python调用linux驱动_linux python如何调用另一个python文件 - CSDN
精华内容
参与话题
  • python中执行linux命令(调用linux命令)

    万次阅读 2017-06-19 10:39:40
    #传参调用exe程序(解决相对路径,觉得路径问题),等待exe进程结束,此程序才结束。 # -*- coding: utf-8-*- import os, os.path, sys import win32process, win32event exe_path = sys.argv[1] exe_file = sys....
    #传参调用exe程序(解决相对路径,觉得路径问题),等待exe进程结束,此程序才结束。
    
    # -*- coding: utf-8-*-
    
    import os, os.path, sys
    import win32process, win32event
    
    exe_path = sys.argv[1]
    exe_file = sys.argv[2]
    
    #os.chdir(exe_path)
    
    try :
            handle = win32process.CreateProcess(os.path.join(exe_path, exe_file),
                    '', None, None, 0,
                    win32process.CREATE_NO_WINDOW,
                    None ,
                    exe_path,
                    win32process.STARTUPINFO())
            running = True       
    except Exception, e:
            print "Create Error!"
            handle = None
            running = False
    
    while running :
            rc = win32event.WaitForSingleObject(handle[0], 1000)
            if rc == win32event.WAIT_OBJECT_0:
                    running = False
    #end while
    print "GoodBye"
     

    #需要用的模块:pywin32-214.win32-py2.5.exe 

    把改程序做成exe程序,就可以任何地方调用了(windows系统下)。


    ===========================================================================

    两者均需 import os

    (1) os.system

    # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息

    system(command) -> exit_status
    Execute the command (a string) in a subshell.

    # 如果再命令行下执行,结果直接打印出来

    >>> os.system('ls')
    04101419778.CHM   bash      document    media      py-django   video
    11.wmv            books     downloads   Pictures  python
    all-20061022      Desktop   Examples    project    tools

    (2) os.popen

    # 该方法不但执行命令还返回执行后的信息对象

    popen(command [, mode='r' [, bufsize]]) -> pipe
    Open a pipe to/from a command returning a file object.

    ---------------------------------------------------------------------

    p=os.popen('ssh 10.3.16.121 ps aux | grep MySQL')
    x=p.read()
    print x
    p.close()

    例如:

    >>>tmp = os.popen('ls *.py').readlines()
    >>>tmp
    Out[21]:
    ['dump_db_pickle.py ',
    'dump_db_pickle_recs.py ',
    'dump_db_shelve.py ',
    'initdata.py ',
    '__init__.py ',
    'make_db_pickle.py ',
    'make_db_pickle_recs.py ',
    'make_db_shelve.py ',
    'peopleinteract_query.py ',
    'reader.py ',
    'testargv.py ',
    'teststreams.py ',
    'update_db_pickle.py ',
    'writer.py ']

    好处在于:将返回的结果赋于一变量,便于程序的处理。

    (3)  使用模块subprocess

    >>> import subprocess
    >>> subprocess.call (["cmd", "arg1", "arg2"],shell=True)

    获取返回和输出:

    import subprocess
    p = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in p.stdout.readlines():
        print line,
    retval = p.wait()
    (4)  使用模块commands模块

     import os
    
    import commands
    
    方法1)使用commands.getstatusoutput方法,这是一个神奇的方法,能够直接得到返回值以及命令输出。官网说明:http://docs.python.org/library/commands.html
    
            status,output=commands.getstatusoutput(cmdstr)
    
    ***********************下面代码是判断返回值**********************************************************
            if False==os.WIFEXITED(status) or 0!=os.WEXITSTATUS(status):                       
                self.logging.info("check port false. port [%s] has not been listened. cmdstr: [%s]", port, cmdstr)                                                        
                return False 
            self.logging.info("check port true. port [%s] has been listened. cmdstr: [%s]", cmdstr) 
            return True       
    
    status是返回值,ouput是输出
    
    但是这种方法存在一个问题,就是如果命令中(cmdstr)含有&符号,这个命令会出错,此时,需要使用os.system方法

    >>> import commands
    >>> dir(commands)
    ['__all__', '__builtins__', '__doc__', '__file__', '__name__', 'getoutput', 'getstatus', 'getstatusoutput','mk2arg', 'mkarg']
    >>> commands.getoutput("date")
    'Wed Jun 10 19:39:57 CST 2009'
    >>>
    >>> commands.getstatusoutput("date")
    (0, 'Wed Jun 10 19:40:41 CST 2009')
    注意: 当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess,如果使用os.popen则会出现下面的错误:
    Traceback (most recent call last):
    File "./test1.py", line 56, in <module>
      main()
    File "./test1.py", line 45, in main
      fax.sendFax()
    File "./mailfax/Fax.py", line 13, in sendFax
      os.popen(cmd)
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 46-52: ordinal not in range(128)
    (5)使用模块pbs

    >>> import pbs
    
    >>> pbs.pwd()
    
    /var/log
    
    >>> pbs.hostname()
    
    waf-dev
    
    >>> pbs.ifconfig('eth1')
    
    eth1      Link encap:以太网  硬件地址 00:50:56:94:db:20
    
              inet 地址:182.168.1.1  广播:192.2.255.255  掩码:255.255.0.0
    
              inet6 地址: fe80::250:56ff:fe94:db20/64 Scope:Link
    
              UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
    
              接收数据包:3229133 错误:0 丢弃:0 过载:0 帧数:0
    
              发送数据包:2215454 错误:0 丢弃:0 过载:0 载波:0
    
              碰撞:0 发送队列长度:1000
    
              接收字节:452148544 (452.1 MB)  发送字节:1095951536 (1.0 GB)
    
    >>> pbs.ping('g.cn', c=3)
    
    PING g.cn (203.208.45.208) 56(84) bytes of data.
    
    64 bytes from 203.208.45.208: icmp_seq=1 ttl=48 time=13.1 ms
    
    64 bytes from 203.208.45.208: icmp_seq=2 ttl=48 time=12.4 ms
    
    64 bytes from 203.208.45.208: icmp_seq=3 ttl=48 time=11.6 ms
    
    --- g.cn ping statistics ---
    
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    
    rtt min/avg/max/mdev = 11.675/12.430/13.125/0.593 ms

    ==========================================================================================


    1.1   os.system(command)

    在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

    1.2   os.popen(command,mode)

    打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

    os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

    1.3   commands.getstatusoutput(command)

      使用commands.getstatusoutput函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。

    实例:

    >>>import commands

    >>> status, output = commands.getstatusoutput('ls -l')

    使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。

    2.1   subprocess.call(["some_command","some_argument","another_argument_or_path"])

    subprocess.call(command,shell=True)

    实例:

    handle = subprocess.call('ls -l', shell=True)

    2.2   subprocess.Popen(command, shell=True)

    如果command不是一个可执行文件,shell=True不可省。

      最简单的方法是使用class subprocess.Popen(command,shell=True)。Popen类有Popen.stdin,Popen.stdout,Popen.stderr三个有用的属性,可以实现与子进程的通信。 【linux公社 http://www.linuxidc.com 】

    将调用shell的结果赋值给python变量

    handle = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)

    实例:

    handle = subprocess.Popen('ls -l', stdout=subprocess.PIPE, shell=True)

    handle = subprocess.Popen(['ls','-l'], stdout=subprocess.PIPE, shell=True)

    handle = subprocess.Popen(args='ls -l', stdout=subprocess.PIPE, shell=True)

    print handle.stdout.read()

    print handle.communicate()[0]



    展开全文
  • geckodriver放在/usr/bin目录下,但执行时候提示cannot execute binary file:exec format error
  • LinuxPython 实现按任意键退出

    万次阅读 2013-10-13 14:27:16
    那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间也不算长,所以就google了一下,没想到在一个朋友的博客里找到了,这里转载一下,不过主要还是linux下的。 当然,windows系统下会稍微简单...

    某天在群内有同学问到,在python下我用input或者raw_input都得输入完后回车才能获取到输入的值,那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间也不算长,所以就google了一下,没想到在一个朋友的博客里找到了,这里转载一下,不过主要还是linux下的。

    当然,windows系统下会稍微简单一些,windows系统下如果你安装了python的环境,默认自带的一个模块叫做msvcrt,import msvcrt,然后调用msvcrt.getch()即可。接下来为转载原文,即Linux下实现python版本的按任意键退出,以下为文章内容,原文地址为:http://www.linuxzen.com/linux-xia-python-shi-xian-an-ren-yi-jian-tui-chu.html,欢迎转载,请尊重原创!

    初学Python时在总想实现一个按任意键继续/退出的程序(受.bat毒害), 奈何一直写不出来, 最近学习Unix C时发现可以通过termios.h库来实现, 尝试一下发现Python也有这个库, 所以终于写出一个这样的程序. 下面是代码:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import os
    import sys
    import termios
    
    
    def press_any_key_exit(msg):
        # 获取标准输入的描述符
        fd = sys.stdin.fileno()
    
        # 获取标准输入(终端)的设置
        old_ttyinfo = termios.tcgetattr(fd)
    
        # 配置终端
        new_ttyinfo = old_ttyinfo[:]
    
        # 使用非规范模式(索引3是c_lflag 也就是本地模式)
        new_ttyinfo[3] &= ~termios.ICANON
        # 关闭回显(输入不会被显示)
        new_ttyinfo[3] &= ~termios.ECHO
    
        # 输出信息
        sys.stdout.write(msg)
        sys.stdout.flush()
        # 使设置生效
        termios.tcsetattr(fd, termios.TCSANOW, new_ttyinfo)
        # 从终端读取
        os.read(fd, 7)
    
        # 还原终端设置
        termios.tcsetattr(fd, termios.TCSANOW, old_ttyinfo)
    
    
    if __name__ == "__main__":
        press_any_key_exit("按任意键继续...")
        press_any_key_exit("按任意键退出...")
    

    其他关于termios的信息可以参考Linux手册:

    man 3 termios
    

    另补充一下*nix终端的三种模式(摘自<Unix-Linux编程实践教程>)

    规范模式

    规范模式, 也被成为cooked模式, 是用户常见的模式.驱动程序输入的字符保存在缓冲区, 并且仅在接收到回车键时才将这些缓冲的字符发送到程序.缓冲数据使驱动程序可以实现最基本的编辑功能, 被指派这些功能的特定键在驱动程序里设置, 可以通过命令stty或系统调用tcsetattr来修改

    非规范模式

    当缓冲和编辑功能被关闭时, 连接被成为非规范模式.终端处理器仍旧进行特定的字符处理, 例如处理Ctrl-C及换行符之间的转换, 但是编辑键将没有意义, 因此相应的输入被视为常规的数据输入 程序需要自己实现编辑功能

    raw模式

    当所有处理都被关闭后, 驱动程序将输入直接传递给程序, 连接被成为raw模式.


    展开全文
  • Perl或者Python脚本去连接Vertica数据库

    千次阅读 2015-02-12 22:08:04
    ETL服务器不支持连接Vertica数据库操作,但是我们可以通过ETL服务器去调用Perl或者Python脚本去连接Vertica数据库。   部署环境 下面我们要介绍如何在ETL环境上通过Python脚本去访问Vertica数据库(ETL环境和Vertica...
    背景:
    ETL服务器不支持连接Vertica数据库操作,但是我们可以通过ETL服务器去调用Perl或者Python脚本去连接Vertica数据库。
     
    部署环境
    下面我们要介绍如何在ETL环境上通过Python脚本去访问Vertica数据库(ETL环境和Vertica数据库不在一个环境上面)。


    1、 需要安装的驱动列表:
    (1) unixODBC:
     Linux上面的ODBC驱动管理器
    (2) ODBC Driver:
    Vertica数据库提供的ODBC访问驱动
    (3) Pyodbc:
    Python访问Vertica所需要的驱动程序
    2、 安装unixODBC驱动
    (1) 以root用户登录到ETL服务器
    (2) 执行如下命令,安装unixODBC驱动:
    rpm -ivh unixODBC-2.2.12-204.3.1.x86_64.rpm
     
    (3) 检查unixODBC是否安装成功:
    linux:~ # rpm -qa | grep unixODBC
    unixODBC-2.2.12-204.3.1 #与上面的包名称一致


    执行rpm -ql unixODBC-2.2.12-204.3.1.x86_64命令,查看unixODBC安装的具体路径和名称,如下:
    linux:~ # rpm -ql unixODBC-2.2.12-204.3.1.x86_64
    /etc/unixODBC
    /etc/unixODBC/ODBCDataSources
    /etc/unixODBC/odbc.ini
    /etc/unixODBC/odbcinst.ini
    ……省略n行
    /usr/share/doc/packages/unixODBC
     
    执行odbcinst –j命令,则查看unixODBC的配置文件路径,如下:
    linux:~ # odbcinst -j
    unixODBC 2.2.12
    DRIVERS............: /etc/unixODBC/odbcinst.ini
    SYSTEM DATA SOURCES: /etc/unixODBC/odbc.ini
    USER DATA SOURCES..: /root/.odbc.ini
    上面的几个文件后面需要配置Vertica信息的。
    展开全文
  • 在 WSL 2 中启用 NVIDIA CUDA

    千次阅读 热门讨论 2020-07-22 15:36:35
    这意味着 Linux 二进制文件可以利用 GPU 资源,在 WSL 中进行机器学习、AI 开发或是数据科学等工作。微软在今年五月份的 Build 2020 大会上宣布了 WSL 对 GPU 计算的支持,对这项功能的需求在社区中一直拥有很高的...

    在微软最新发布的 Windows Insider 预览版本中,WSL2 获得了 GPU 计算支持。这意味着 Linux 二进制文件可以利用 GPU 资源,在 WSL 中进行机器学习、AI 开发或是数据科学等工作。微软在今年五月份的 Build 2020 大会上宣布了 WSL 对 GPU 计算的支持,对这项功能的需求在社区中一直拥有很高的呼声。目前,需要在WSL中启用GPU支持需要加入Windows 预览版 SDK,以下为具体步骤。

    安装预览版系统

    该处成为Win预览体验成员。或是在win10系统设置-更新和安全-Windows预览体验计划中选择加入,记得无论是哪个渠道加入,一定要选取快速通道,随后保存并按照提示重启,随后检查更新即可自动安装最新的快速预览版系统。
    在这里插入图片描述
    请务必确保win版本高于20150,可在运行(win+R)中执行winver进行确认。
    在这里插入图片描述

    安装预览版驱动

    请勿在 WSL 中安装任何 Linux 显示驱动程序。Windows 显示驱动程序将同时安装本机 Windows 和 WSL 支持的常规驱动程序组件。
    英伟达下载与安装支持WSL的GPU驱动。
    在这里插入图片描述
    记得按照自己的GPU产品选择对应的驱动(该步骤需要Nvidia账户),下载后安装即可。
    在这里插入图片描述

    安装WSL2

    确保自己安装并启用了WSL2。
    1. 以管理员身份打开 PowerShell 并运行:
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    随后重启即可。
    2. 将 WSL 2 设置为默认版本,以管理员身份打开 PowerShell 并运行:
    wsl --set-default-version 2
    ps: 若提示"WSL 2 需要更新其内核组件”。下载并安装WSL 2 Linux 内核
    3. 随后进入微软商店下载并安装对应的Linux版本即可。或者前往在此选择具体Linux版本。
    注:WSL必须安装在系统分区中。如果之前修改到了其它分区,请在下载安装对应Linux之前在win系统设置-系统-存储-更改新内容的保存设置-将新应用保存到…中选择对应系统分区,随后再进行安装。
    4. 验证
    请务必验证安装了WSL2(特别是以往就安装了WSL的电脑),以管理员身份打开 PowerShell 并运行:
    wsl --list --verbose
    如果返回的结果中version下的值为2,WSL2就安装成功了。

    配置环境

    请勿在 WSL 中安装任何 Linux 显示驱动程序。前述安装的Windows预览版显示驱动程序将同时安装本机 Windows 和 WSL 支持的常规驱动程序组件。
    随后按照个人需求配置DL环境,Ubuntu系统下的PyTorch配置可参考此博文

    更新:在WSL2中配置Cuda

    我说的时不要安装任何Linux显示驱动程序,必要的Cuda之类还是要自己安装的,以下为具体步骤:

    安装编译环境

    该步骤非必须,可以先尝试安装cuda,提示缺少编译器无法正常安装再进行该步骤

    sudo apt update
    sudo apt install build-essential
    

    下载cuda包

    前往Nvidia官网下载对应的cuda包,自己用什么版本就下什么版本。

    安装cuda

    安装cuda时千万记住不要安装驱动,不要安装驱动,不要安装驱动!!!!其余选项该怎么装怎么装,就是不要装驱动!!!!Driver相关一定要N或者X掉!!!!!!

    安装后一定有如下提示,Driver: Not Selected
    在这里插入图片描述

    如果提示缺少相应的依赖库,直接执行如下代码自动安装相应的依赖库

    sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
    

    最终

    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。
    在这里插入图片描述
    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。
    可见WSL2中的pytorch可正常调用GPU。

    不要再问什么能不能调用GPU的问题了
    不要再问什么能不能调用GPU的问题了
    不要再问什么能不能调用GPU的问题了
    不要再问什么能不能调用GPU的问题了

    更新:Win下的PyCharm调用WSL2的python环境

    条件

    • 请确保WSL2中的cuda环境正常
    • 配置好python环境
    • 安装PyCharm Professional

    设置python环境

    Settings->Project: Your Project Name->Project Interpreter->右边小三角->Show All…,随后点击+增加新环境
    在这里插入图片描述
    随后在WSL中选择具体的python3的执行文件路径,如果使用anaconda进行管理那么路径如下所示,路径一定要选到具体的python执行文件上,随后添加即可。
    在这里插入图片描述

    展开全文
  • Linux搭建Python+selenium运行环境

    千次阅读 2018-09-20 10:39:16
    1、查看LinuxPython的版本,可以用python 或者python -V查看,因为我们得项目大多使用Python3.x,所以要安装一个Python3的版本‘ 2、下载并解压Python3.x cd /opt/soft 执行 wget ...
  • python 实现linux串口收发数据源码

    千次阅读 2018-10-24 16:17:11
    使用python实现在linux平台收发串口数据,源码如下: uart.py #!/usr/bin/python import serial,time,thread ser=serial.Serial('/dev/ttyS1', timeout=1) print ser.portstr def recv_func(sec):  global ser ...
  • 浅析Linux从API调用到底层驱动的过程

    千次阅读 2018-11-20 09:45:02
    本篇只是嵌入式Linux的开篇,仅仅通过如下结构来简单说说调用流程。  分析:应用层调用open()函数打开鼠标文件时的调用过程。  当用户通过API中的open()函数试图去打开一个鼠标文件时,open()函数会有一个返回值...
  • 树莓派3下Python调用斑马GK888t打印机

    千次阅读 2017-01-25 10:08:51
    折腾了几天终于初有收获。继去年的三无温控探头之后,海爷又支援了他珍藏的斑马打印机。结合之前的研究成果,这下终于可以尝试用树莓派实现自助打印的...和Windows不同,Raspbian下装打印机“驱动”可以通过CUPS安装。
  • Python下实现按任意键继续

    万次阅读 2018-11-12 11:25:22
    方案:我们可以利用python的内建库来实现,下面分别就Windows和linux给出具体实现。 Windows: msvcrt 中的getch()方法,其作用是获取一个按键响应并返回对应的字符。如下: import msvcrt print ord...
  • 小弟本是做软件的,现在学习在Xilinx zynq中的opencv hls加速。官方的文档只找到怎么生成ip核和怎么集成到fpga中,并没有找到集成后怎么在软件中使用的指导。我做了xapp1167和xapp890的工程,想用xapp890的sobel核做...
  • python读取access文件并入库

    万次阅读 2016-02-26 15:47:10
    Python读取access文件时和读取Excel文件不是很一样,当然用的工具也不一样,在读取excel中的数据时用的是xlrd,而读取access文件时用的则是pypyodbc。 简要安装过程:1、首先要安装access驱动(AccessRuntime_x64_...
  • python中的spidev模块

    千次阅读 2019-01-05 15:18:21
    spidev模块主要用于通过spidev linux内核驱动程序从用户空间与SPI设备连接。 二、安装 官网下载安装包 https://pypi.org/project/spidev/ tar –zxvf spidev-3.2.tar.gz cd spidev-3.2 sudo python3 setup.py ...
  • linux上层app调用驱动底层的过程详解

    千次阅读 2017-05-27 14:44:16
    APP应用程序->应用框架层->硬件抽象层-> 硬件驱动程序 一、硬件驱动层  进入kernel/drivers文件夹中,创建一文件夹,放入驱动程序。包括头文件,C文件,Makefile,Kconfig。同时对drivers下的Makefile跟Kconfig...
  • 研究爬虫的时候,用到了chrome headless,于是想到PhantomJS停止维护了,headless Chrome能否完全替代PhantomJS,是否需要其他的驱动安装呢?做了一些简单的实验并记录一下在无图形Linux机器上使用selenium的集中...
  • 使用Python连接postgresql数据库

    万次阅读 2016-11-22 16:17:33
    使用Python连接postgresql数据库的配置非常简单,仅仅需要三步: 1、导入psycopg2包; 2、设置连接 3、取数据 #-*- coding:utf-8 -*- import psycopg2 conn = psycopg2.connect(database='aa',user='username',...
  • LinuxPython与C程序进程间通信

    千次阅读 2014-01-03 15:40:28
    Python大家应该比较熟悉,很好的一门语言,最近几年一直很流行,尤其是在外企,比较有名的IT公司几乎毫无例外的都使用python,像Intel, Marvell, Cisco, EMC等等。 我也认为这门语言很优秀,首先是语法...
  • From:... 三种常用的方式 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式。 python script.py 0,1,2 10 python script.py -gpus=0,1,2 --batch-size...
  • linux opencv打不开摄像头

    千次阅读 2019-01-19 14:44:31
    配置: ubuntu16.04 opencv3.4 罗技c270 webcam ...一开始我以后是opencv的版本问题,换了最新版本的opencv-python4,运行代码显示:VIDEOIO ERROR:V4L: can't open camera by index 0。 代码里是 ...
  • c语言主要用于底层和驱动,编译器开发c语言高效底层,主要用于底层的开发,比如一些系统驱动;unix,linux系统和其上相关应用的开发;有很多语言比如python、php、perl、ruby等都是c语言开发的这些语言的核心库,...
1 2 3 4 5 ... 20
收藏数 24,110
精华内容 9,644
关键字:

python调用linux驱动