• 关于

    python模块的使用

    的搜索结果

回答

很多时候你可能希望你开发的程序能够同时兼容Python2+和Python3+。 试想你有一个非常出名的Python模块被很多开发者使用着,但并不是所有人都只使用Python2或者Python3。这时候你有两个办法。第一个办法是开发两个模块,针对Python2一个,针对Python3一个。还有一个办法就是调整你现在的代码使其同时兼容Python2和Python3。 本节中,我将介绍一些技巧,让你的脚本同时兼容Python2和Python3。 Future模块导入 第一种也是最重要的方法,就是导入__future__模块。它可以帮你在Python2中导入Python3的功能。这有一组例子: 上下文管理器是Python2.6+引入的新特性,如果你想在Python2.5中使用它可以这样做: from __future__ import with_statement 在Python3中print已经变为一个函数。如果你想在Python2中使用它可以通过__future__导入: print # Output: from __future__ import print_function print(print) # Output: <built-in function print> 模块重命名 首先,告诉我你是如何在你的脚本中导入模块的。大多时候我们会这样做: import foo # or from foo import bar 你知道么,其实你也可以这样做: import foo as foo 这样做可以起到和上面代码同样的功能,但最重要的是它能让你的脚本同时兼容Python2和Python3。现在我们来看下面的代码: try: import urllib.request as urllib_request # for Python 3 except ImportError: import urllib2 as urllib_request # for Python 2 让我来稍微解释一下上面的代码。 我们将模块导入代码包装在try/except语句中。我们是这样做是因为在Python 2中并没有urllib.request模块。这将引起一个ImportError异常。而在Python2中urllib.request的功能则是由urllib2提供的。所以,当我们试图在Python2中导入urllib.request模块的时候,一旦我们捕获到ImportError我们将通过导入urllib2模块来代替它。 最后,你要了解as关键字的作用。它将导入的模块映射到urllib.request,所以我们通过urllib_request这个别名就可以使用urllib2中的所有类和方法了。 过期的Python2内置功能 另一个需要了解的事情就是Python2中有12个内置功能在Python3中已经被移除了。要确保在Python2代码中不要出现这些功能来保证对Python3的兼容。这有一个强制让你放弃12内置功能的方法: from future.builtins.disabled import * 现在,只要你尝试在Python3中使用这些被遗弃的模块时,就会抛出一个NameError异常如下: from future.builtins.disabled import * apply() # Output: NameError: obsolete Python 2 builtin apply is disabled 标准库向下兼容的外部支持 有一些包在非官方的支持下为Python2提供了Python3的功能。例如,我们有: enum pip install enum34singledispatch pip install singledispatchpathlib pip install pathlib 想更多了解,在Python文档中有一个全面的指南可以帮助你让你的代码同时兼容Python2和Python3。
montos 2020-04-16 21:37:10 0 浏览量 回答数 0

回答

首先去python官网下载python3的源码包,网址:https://www.python.org/  进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source code,表示源码包,这里选择最新版本3.5.1,当然下面也有很多其他历史版本,点进去之后页面下方可以看到下载链接,包括源码包、Mac OSX安装包、Windows安装包    这里选择第一个下载即可,下载的就是源码包:Python-3.5.1.tgz,下载好之后上传到linux系统,准备安装  python安装之前需要一些必要的模块,比如openssl,readline等,如果没有这些模块后来使用会出现一些问题,比如没有openssl则不支持ssl相关的功能,并且pip3在安装模块的时候会直接报错;没有readline则python交互式界面删除键和方向键都无法正常使用,至于需要什么模块在make完之后python会给出提示,通过提示进行安装即可装全, 另外感谢园友的Glory_Lion的回复;下面是需要提前预装的依赖:复制代码yum -y install zlib zlib-develyum -y install bzip2 bzip2-develyum -y install ncurses ncurses-develyum -y install readline readline-develyum -y install openssl openssl-develyum -y install openssl-staticyum -y install xz lzma xz-develyum -y install sqlite sqlite-develyum -y install gdbm gdbm-develyum -y install tk tk-develyum -y install libffi libffi-devel复制代码 安装上面这些python内置模块基本上就比较全了,如果后续有其他必要的模块,会继续补充的,接下来可以安装python了,编译过程中会自动包含这些依赖.   释放文件:tar -xvzf Python-3.5.1.tgz  进入目录:cd Python-3.5.1/  配置编译,因为上面依赖包是用yum安装而不是自己编译的,所以都是安装在系统默认目录下,因此各种选项不用加默认即可生效:./configure --prefix=/usr/python --enable-shared CFLAGS=-fPIC 补充一下:这里加上--enable-shared和-fPIC之后可以将python3的动态链接库编译出来,默认情况编译完lib下面只有python3.xm.a这样的文件,python本身可以正常使用,但是如果编译第三方库需要python接口的比如caffe等,则会报错;所以这里建议按照上面的方式配置,另外如果openssl不使用系统yum安装的,而是使用自己编译的比较新的版本可以使用--with-openssl=/usr/local/openssl这种方式指定,后面目录为openssl实际安装的目录,另外编译完还要将openssl的lib目录加入ld运行时目录中即可.   接下来编译源码:make  执行安装:make install  整个过程大约5-10分钟,安装成功之后,安装目录就在/usr/python 安装完成之后要简单做一下配置:即将python库路径添加到/etc/ld.so.conf配置中,然后执行ldconfig生效;或者添加到$LD_LIBRARY_PATH中,这样在接下来运行python3是就不会报找不到库文件的错误了.   系统中原来的python在/usr/bin/python,通过ls -l可以看到,python是一个软链接,链接到本目录下的python2.7  这里不要把这个删除,不对原来默认的环境做任何修改,只新建一个python3的软链接即可,只是需要执行python3代码时python要改成python3,或者python脚本头部解释器要改为#!/usr/bin/python3  这里建立有关的软链接如下:ln -s /usr/python/bin/python3 /usr/bin/python3ln -s /usr/python/bin/pip3 /usr/bin/pip3  这样就建立好了,以后直接执行python3命令就可以调用python3了,执行pip3可以安装需要的python3模块;另外如果仔细看python安装目录下的bin目录,实际上python3也是个软链接,链接到python3.5.1,这样多次链接也是为了多个版本的管理更加方便,  python3新版本的安装就是这些,因为我们之前安装了完整的依赖,所以下面问题不存在了,忽略即可,其中的python readline模块也早已经停止更新了,会出现崩溃问题;这里基础环境都是使用系统的依赖,更稳定.
小六码奴 2019-12-02 01:05:53 0 浏览量 回答数 0

回答

Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可  首先去python官网下载python3的源码包,网址:https://www.python.org/  进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source code,表示源码包,这里选择最新版本3.5.1,当然下面也有很多其他历史版本,点进去之后页面下方可以看到下载链接,包括源码包、Mac OSX安装包、Windows安装包    这里选择第一个下载即可,下载的就是源码包:Python-3.5.1.tgz,下载好之后上传到linux系统,准备安装  python安装之前需要一些必要的模块,比如openssl,readline等,如果没有这些模块后来使用会出现一些问题,比如没有openssl则不支持ssl相关的功能,并且pip3在安装模块的时候会直接报错;没有readline则python交互式界面删除键和方向键都无法正常使用,至于需要什么模块在make完之后python会给出提示,通过提示进行安装即可装全, 另外感谢园友的Glory_Lion的回复;下面是需要提前预装的依赖:复制代码yum -y install zlib zlib-develyum -y install bzip2 bzip2-develyum -y install ncurses ncurses-develyum -y install readline readline-develyum -y install openssl openssl-develyum -y install openssl-staticyum -y install xz lzma xz-develyum -y install sqlite sqlite-develyum -y install gdbm gdbm-develyum -y install tk tk-devel复制代码 安装上面这些python内置模块基本上就比较全了,如果后续有其他必要的模块,会继续补充的,接下来可以安装python了,编译过程中会自动包含这些依赖.   释放文件:tar -xvzf Python-3.5.1.tgz  进入目录:cd Python-3.5.1/  配置安装目录,因为上面依赖包是用yum安装而不是自己编译的,所以都是安装在系统默认目录下,因此各种选项不用加默认即可生效:./configure --prefix=/usr/python  接下来编译源码:make  执行安装:make install  整个过程大约5-10分钟,安装成功之后,安装目录就在/usr/python  系统中原来的python在/usr/bin/python,通过ls -l可以看到,python是一个软链接,链接到本目录下的python2.7  我们可以不用把这个删除,不对原来默认的环境做任何修改,只新建一个python3的软链接即可,只是需要执行python3代码时python要改成python3,或者python脚本头部解释器要改为#!/usr/bin/python3  这里建立有关的软链接如下:ln -s /usr/python/bin/python3 /usr/bin/python3ln -s /usr/python/bin/pip3 /usr/bin/pip3  这样就建立好了,以后直接执行python3命令就可以调用python3了,执行pip3可以安装需要的python3模块;另外如果仔细看python安装目录下的bin目录,实际上python3也是个软链接,链接到python3.5.1,这样多次链接也是为了多个版本的管理更加方便,  python3新版本的安装就是这些,因为我们之前安装了完整的依赖,所以下面问题不存在了,忽略即可,其中的python readline模块也早已经停止更新了,会出现崩溃问题;这里基础环境都是使用系统的依赖,更稳定. --------------------------------------------华丽的分割线---------------------------------------------------   另外可能会遇到一个问题就是,python3交互式界面特别不好用,删除不能正常使用,必须按Ctrl+删除键才可以,上下键重复命令也无法使用,左右调整光标也无法使用,这样调试代码效率很低,原因是python3缺少readline这个依赖,默认使用pip3 install readline会提示找不到包,所以只能是手动安装了  因为readline依赖于ncurses库,如果没有这个库,编译readline的时候会提示can not find -lncurses,如果在centos环境下可以执行下面命令安装:yum -y install ncurses ncurses-devel  安装ncurses库之后,再安装readline,readline可以在pypi下载,地址:https://pypi.python.org/pypi/readline,这里一定要下载源码包,其余的只能用于python2,下载之后执行下面命令安装:tar -xvzf readline-6.2.4.1.tar.gzcd readline-6.2.4.1/python3 setup.py install  这样执行完毕就为python3安装了readline,然后再进入交互式界面所有的操作都好用了
xuning715 2019-12-02 01:10:13 0 浏览量 回答数 0

回答

本人是Python小白,在使用过程中遇到了一些跨平台及Python版本的问题,下面开始不定时添加我在学习Python过程中遇到的问题及解决方案。1、Python2.x,print不需要括号,而Python3.x需要,否则会报错    Python2.x:print  response.read()    Python3.x:print ( response.read())2、urllib中urlencode使用    python3.x:urlencode在urllib.parse模块中 使用方式urllib.parse.urlencode ,下面是在parse.py中urlencode模块的定义。    python2.x:使用方法是直接使用,from urllib import urlencode
寒喵 2019-12-02 01:09:21 0 浏览量 回答数 0

回答

pip更新模块:1) 使用控制台命令进入到pip的安装路径:D:Python27Libsite-packages2) 使用更新命令行:pip install -U PackageNamepip卸载模块:1) 使用控制台命令进入到pip的安装路径:D:Python27Libsite-packages2) 使用更新命令行:pip uninstall PackageName二、如下是已经安装了pip的情况1、如果python安装在默认路径下 ,打开控制台 直接输入:pip install 模块或包名即可2、如果python安装在非默认环境下,在控制台中,需进入到pip.exe所在目录,然后再输入”pip install 模块或包名“即可,如:我的pip.exe所在目录为”D:Program Files (x86)Python36Scripts“,如下图cmd进入到的pip所在地址,输入安装命令,这里介绍利用pip安装matplotlib模块,matplotlib是一个Python的2D会图库。如下图如果要升级某一个组件,命令也可以这样写:pip install --upgrade matplotlib
世事皆空 2019-12-02 01:07:37 0 浏览量 回答数 0

回答

Python 事件函数 在函数计算服务中使用 Python 编程,需要定义一个函数作为入口函数,本文介绍了Python 事件函数。 函数计算目前支持以下 Python 运行环境: Python 2.7 ( runtime = python2.7 ) Python 3.6 ( runtime = python3 ) Python HTTP 函数 本文介绍了 Python HTTP 函数,为函数设置 HTTP 触发器后,可以方便处理发来的 HTTP 请求,方便搭建 Web 应用。 Python Initializer 函数 Initializer 函数是实例的初始化函数,保证同一实例成功且仅成功执行一次。本文介绍了 Python Initializer 入口的结构和特点。 函数计算目前支持以下 Python 运行环境: Python 2.7 ( runtime = python2.7 ) Python 3.6 ( runtime = python3 ) Python 运行环境 函数计算目前支持以下 Python 运行环境: Python 2.7 ( runtime = python2.7 ) Python 3.6 ( runtime = python3 ) 本文介绍了 Python 运行环境的以下内容: 打印日志 错误处理 使用内置模块 使用自定义模块 调用外部命令
1934890530796658 2020-03-27 16:24:59 0 浏览量 回答数 0

回答

建立了一个名为hi.py的文件,在里面写了两句:codeing = utf-8word= "hi,python"事实上它已经是一个模块了,下面我写了一个test.py的文件,调用这个模块:import syssys.path.append("hi.py")import hiprint hi.word运行test.py :C:Python27python.exe D:/RUANJIAN/shuju/mpdule_test.pyhi python我们看看我们做了什么:1.编写了hi.py模块,在模块中定义了变量word 2.编写了test.py,在模块中添加了test.py所在的路径3.引用hi模块4.引用模块中内容一个普通的python程序在其他程序中添加路径,就可以调用,是不是很简单?有的人就会有疑问,那么为什么我们improt 的math就没有引用呢,那是因为系统模块在生成的时候就记录了模块的所在位置,相当于系统有一个目录,目录上有math但是没有我们的hi所以我们直接import会报错。sys.path.append("hi.py") 用这种方式告诉Python解释器,我写的那个文件在哪里。在这个方法中,也用了模块import sys,不过由于sys是Python标准库之一,所以不用特别告诉Python解释器其位置。如果读者使用的是Windows系统,请学习路径方面的知识。
世事皆空 2019-12-02 01:09:34 0 浏览量 回答数 0

回答

在Python中,安装第三方模块,是通过setuptools这个工具完成的。Python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐使用pip。 如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。 如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。 在命令提示符窗口下尝试运行pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip。 现在,让我们来安装一个第三方库——Python Imaging Library,这是Python下非常强大的处理图像的工具库。一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Python Imaging Library的名称叫PIL,因此,安装Python Imaging Library的命令就是: pip install PIL耐心等待下载并安装后,就可以使用PIL了。 有了PIL,处理图片易如反掌。随便找个图片生成缩略图: import Imageim = Image.open('test.png')print im.format, im.size, im.modePNG (400, 300) RGBim.thumbnail((200, 100))im.save('thumb.jpg', 'JPEG') 其他常用的第三方库还有MySQL的驱动:MySQL-python,用于科学计算的NumPy库:numpy,用于生成文本的模板工具Jinja2,等等。 模块搜索路径 当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错: import mymodule Traceback (most recent call last): File "", line 1, in ImportError: No module named mymodule默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中: import syssys.path ['', '/Library/Python/2.7/site-packages/pycrypto-2.6.1-py2.7-macosx-10.9-intel.egg', '/Library/Python/2.7/site-packages/PIL-1.1.7-py2.7-macosx-10.9-intel.egg', ...]如果我们要添加自己的搜索目录,有两种方法: 一是直接修改sys.path,添加要搜索的目录: import syssys.path.append('/Users/michael/my_py_scripts') 这种方法是在运行时修改,运行结束后失效。 第二种方法是设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。
xuning715 2019-12-02 01:10:21 0 浏览量 回答数 0

问题

在Windows中将MySQL与Python集成

我发现在Windows系统中很难将MySQL与Python结合使用。 我目前正在使用Python 2.6。我尝试使用提供的安装脚本来编译MySQL-python-1.2.3b1(应该适用于Python 2.6吗?...
保持可爱mmm 2020-05-11 17:34:06 1 浏览量 回答数 1

问题

【精品问答】python五十问第一期

谁能想到60%开发者想要学习的python,竟然诞生于80年代的圣诞节期间。 在阿里斯特丹,百无聊赖的Guido决心开发继承ABC语言的脚本解释程序。就这样,python在Guido的手中诞生了...
问问小秘 2019-12-01 21:51:26 977 浏览量 回答数 1

回答

准备使用time模块,使用time模块的localtime函数,使用range类 在已经分清模块,函数,类的情况下开始测试方法一在python命令行输入以下内容help(time) # 很详细的模块文档help(time.localtime()) # 很详细的函数文档help(range) # 很详细的类的文档123方法二在python命令行输入以下内容print(time.__doc__) # 较详细的模块文档print(time.localtime().__doc__) # 较详细的函数文档print(range.__doc__) # 较详细的类的文档123方法三在python命令行输入以下内容print(dir(time)) # 简略的模块函数显示print(dir(time.localtime())) # 简略的函数参数显示print(dir(range)) # 简略的类构造函数参数显示123方法四在python命令行中输入help(),然后再次输入time,可以获得很详细的模块文档 或者输入time.localtime,可以获得简略的函数参数显示 或者输入range,可以获得很详细的类的文档
xuning715 2019-12-02 01:10:22 0 浏览量 回答数 0

回答

Python标准数据库接口为Python DB-API, Python DB-API为开发人员提供了数据库应用 编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000 InformixInterbase Oracle Sybase你可以访问Python数据库接口及API查看详细的支持数据库列表。不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。DB-API是一个规范。它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同 的方式操作各数据库。Python DB-API使用流程:引入API模块。获取与数据库的连接。执行SQL语句和存储过程。关闭数据库连接。
ylrf1212 2019-12-02 01:06:22 0 浏览量 回答数 0

回答

Python标准数据库接口为Python DB-API, Python DB-API为开发人员提供了数据库应用 编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000 InformixInterbase Oracle Sybase你可以访问Python数据库接口及API查看详细的支持数据库列表。不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。DB-API是一个规范。它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同 的方式操作各数据库。Python DB-API使用流程:引入API模块。获取与数据库的连接。执行SQL语句和存储过程。关闭数据库连接。
ylrf1212 2019-12-02 01:06:10 0 浏览量 回答数 0

回答

1,线程(Thread) 使用多线程可以有效的利用CPU资源(Python例外)。然而多线程所带来的程序的复杂度也不可避免,尤其是对竞争资源的同步问题。 然而在python中由于使用了全局解释锁(GIL)的原因,代码并不能同时在多核上并发的运行,也就是说,Python的多线程不能并发,使用多线程来改进自己的Python代码后,程序的运行效率却下降了。 实际上使用多线程的编程模型是很困难的,程序员很容易犯错,这并不是程序员的错误,因为并行思维是反人类的,我们大多数人的思维是串行,而且冯诺依曼设计的计算机架构也是以顺序执行为基础的。所以如果你总是不能把你的多线程程序搞定。 Python提供两组线程的接口:一是thread模块,提供基础的,低等级(Low Level)接口,使用Function作为线程的运行体。还有一组是threading模块,提供更容易使用的基于对象的接口(类似于Java),可以继承Thread对象来实现线程,还提供了其它一些线程相关的对象。例如Timer,Lock : 使用thread模块的例子: import threaddef worker(): """thread worker function""" print 'Worker' thread.start_new_thread(worker) 使用threading模块的例子: import threadingdef worker(): """thread worker function""" print 'Worker' t = threading.Thread(target=worker)t.start() 2,进程 (Process) 由于前文提到的全局解释锁的问题,Python下比较好的并行方式是使用多进程,这样可以非常有效的使用CPU资源,并实现真正意义上的并发。当然,进程的开销比线程要大,也就是说如果你要创建数量惊人的并发进程的话,需要考虑一下你的机器是不是有一颗强大的心。 Python的mutliprocess模块和threading具有类似的接口。 from multiprocessing import Process def worker(): """thread worker function""" print 'Worker' p = Process(target=worker)p.start()p.join() 由于线程共享相同的地址空间和内存,所以线程之间的通信是非常容易的,然而进程之间的通信就要复杂一些了。常见的进程间通信有: 管道,消息队列,Socket接口(TCP/IP)等等Python的mutliprocess模块提供了封装好的管道和队列,可以方便的在进程间传递消息。 Python进程间的同步使用锁,这一点和线程是一样的。 另外,Python还提供了进程池Pool对象,可以方便的管理和控制线程。 3,远程分布式主机 (Distributed Node) 随着大数据时代的到临,数据的计算和处理需要分布式的计算机网络来运行,程序并行的运行在多个主机节点上,已经是现在的软件架构所必需考虑的问题。 远程主机间的进程间通信有几种常见的方式 TCP/IP TCP/IP是所有远程通信的基础,然而API比较低级别,使用起来比较繁琐,所以一般不会考虑 ; 远程方法调用 Remote Function Call RPC是早期的远程进程间通信的手段。Python下有一个开源的实现RPyC ; 远程对象 Remote Object 远程对象是更高级别的封装,程序可以想操作本地对象一样去操作一个远程对象在本地的代理。
元芳啊 2019-12-02 01:09:33 0 浏览量 回答数 0

回答

执行一行Python语句,会立刻返回执行结果。   当Python控制台输入过多的Python语句时,有时需要将这些已经输入的语句和执行结果清空,并重新开始输入Python语句。例如,下图就是一个输入了多条Python语句,并输出相应结果的Python控制台。 。 image   当然,如果不想看到这些Python语句和输出结果,可以一直按“回车” 键,直到Python控制台中所有的内容都移到窗口上面为止。不过这样以来,光标还是在Python控制台的最下面,而且上面都是Python控制台的命令提示符,非常难看,如下图所示。 image   如果读者用的是Mac OS X系统,在Python控制台中直接按Ctrl+L键就可以直接清空Python控制台。而在Windows中,是没有快捷键用来清空Python控制台的,所以需要我们编写Python代码来实现清空Python控制台的功能。因此,本节的目的到现在已经很清楚了,本节主要并不是教大家如何清空Python控制台,而是借用清空Python控制台这一操作,利用前面两节介绍的导入模块和声明变量的知识,编写一段Python程序,用来清空Python for Windows控制台。   在Windows下,如果要清空Windows控制台,执行cls命令即可。由于Python控制台是利用Windows控制台实现的,所以cls命令也同样可以清空Python控制台。不过在Python控制台不能直接执行cls命令。在Python控制台要想执行外部命令,需要调用os模块中的system函数。读者可以一行一行在Python控制台输入下面的代码。 import os # 导入os模块 os.system('cls') # 执行cls命令清空Python控制台   执行这两行代码,是把以前在Python控制台中输入的内容都清空了,但在Python控制台的第1行会输出一个“0”,如下图所示。 image   其实这个“0”是os.system函数的返回值。Python控制台会输出每一条执行语句的返回值。os.system函数如果成功执行命令,返回“0”,如果执行命令失败,返回“1”。不过为了最求完美,现在就把这个“0”去掉。   之所以会输出这个“0”,是因为Python语言的标准输出默认指向的是Python控制台,所以所有的Python语句执行的结果都输出到了Python控制台。现在只要改变Python语言的标准输出,让其指向一个文件,那么os.system函数的执行结果就会直接写到这个文件中,而不是Python控制台了。   下面的例子会编写一个Python程序,用于清空Python控制台。 清空Python控制台不输出“0”的步骤如下: (1)导入os模块和sys模块。 (2)使用open函数以可写的方式打开一个文件,本例是out.log。 (3)为了不影响在Python控制台输出其他语句的执行结果,应先将Python默认的标准输出保存到一个变量中,以便以后恢复默认的Python标准输出。使用sys.stdout可以获取Python标准输出的句柄(Handler)。 (4)将Python标准输出指向第2步打开的文件。 (5)使用os.system函数执行cls命令。 (6)恢复Python默认的标准输出。
游客2q7uranxketok 2021-02-24 09:11:42 0 浏览量 回答数 0

回答

Python 反转义字符串 用 Python 来处理转义字符串有多种方式,而且 py2 和 py3 中处理方式不一样,在 python2 中,反转义串的模块是 HTMLParser。 python2 import HTMLParser HTMLParser().unescape('a=1&b=2')'a=1&b=2' Python3 把 HTMLParser 模块迁移到 html.parser python3 from html.parser import HTMLParserHTMLParser().unescape('a=1&b=2') 'a=1&b=2'到 python3.4 之后的版本,在 html 模块新增了 unescape 方法。 python3.4 import htmlhtml.unescape('a=1&b=2') 'a=1&b=2'推荐最后一种写法,因为 HTMLParser.unescape 方法在 Python3.4 就已经被废弃掉不推荐使用,意味着之后的版本有可能会被彻底移除。 另外,sax 模块也有支持反转义的函数 from xml.sax.saxutils import unescapeunescape('a=1&b=2') 'a=1&b=2'当然,你完全可以实现自己的反转义功能,不复杂,当然,我们崇尚不重复造轮子。
世事皆空 2019-12-02 01:08:24 0 浏览量 回答数 0

回答

看来您试图将模块当作独立的脚本而不是作为软件包的成员来运行。在包中运行模块时,需要让Python知道模块在包结构中的位置。这是通过使用-m命令行标志调用Python解释器来完成的。例如,代替写作 python3 ./my_package/subpackage/submodule1.py 跑 python3 -m my_package.subpackage.submodule1 这将使解释器能够适当地确定您的包的结构,并解决您使用的任何相对导入。有关更多信息,请参见有关使用-m标志的相关问题。 回答来源:stackoverflow
is大龙 2020-03-24 20:34:31 0 浏览量 回答数 0

问题

当脚本通过shell_exec()由php执行时,Python“没有命名为…的模块”

我编写了一个python脚本,用于导入已安装的特定模块pip。 当我在终端上运行此脚本时,如python test.py一切正常,当我运行时,help("modules...
祖安文状元 2020-01-08 15:26:37 3 浏览量 回答数 1

回答

你说的问题我没有遇到过,但有一些经验想与你分享下。 我实习的公司使用PHP和Python,通讯的方式是PHPHTTP请求到PythonTornado的接口,Python完成计算后返回Json 然后有一天我升级我的MacPython后,发现公司的Python模块都不能用了,出现了ImportError,仔细查找之下,发现我的系统里存在三个PythonPackage存储路径: 第一个是用brewinstall安装的: /Library/Python/2.7/site-packages 还有不知道从哪冒出来的: /Library/Python/2.7/site-packages/lib/python2.7/site-packages 以及系统自带的: /usr/local/lib/python2.7/site-packages/ 我也没弄明白pip到底将模块安装到了哪里,就干脆在~/.profile里将三个路径都加进了$PYTHONPATH里,在~/.profile后面追加 exportPYTHONPATH=/Library/Python/2.7/site-packages:/Library/Python/2.7/site-packages/lib/python2.7/site-packages:$PYTHONPATH 我的建议是,你可以尝试像我一样看看你的Python是不是也存在多个模块路径,将它们都找到并添加到全局模块搜索路径,或许会解决此问题。 不知对你是否有帮助。谢谢您的指教。受用了
爱吃鱼的程序员 2020-06-20 16:59:53 0 浏览量 回答数 0

回答

Python/C API可能是被最广泛使用的方法。它不仅简单,而且可以在C代码中操作你的Python对象。 这种方法需要以特定的方式来编写C代码以供Python去调用它。所有的Python对象都被表示为一种叫做PyObject的结构体,并且Python.h头文件中提供了各种操作它的函数。例如,如果PyObject表示为PyListType(列表类型)时,那么我们便可以使用PyList_Size()函数来获取该结构的长度,类似Python中的len(list)函数。大部分对Python原生对象的基础函数和操作在Python.h头文件中都能找到。 示例 编写一个C扩展,添加所有元素到一个Python列表(所有元素都是数字) 来看一下我们要实现的效果,这里演示了用Python调用C扩展的代码 #Though it looks like an ordinary python import, the addList module is implemented in C import addList l = [1,2,3,4,5] print "Sum of List - " + str(l) + " = " + str(addList.add(l)) 上面的代码和普通的Python文件并没有什么分别,导入并使用了另一个叫做addList的Python模块。唯一差别就是这个模块并不是用Python编写的,而是C。 接下来我们看看如何用C编写addList模块,这可能看起来有点让人难以接受,但是一旦你了解了这之中的各种组成,你就可以一往无前了。 //Python.h has all the required function definitions to manipulate the Python objects #include <Python.h> //This is the function that is called from your python code static PyObject* addList_add(PyObject* self, PyObject* args){ PyObject * listObj; //The input arguments come as a tuple, we parse the args to get the various variables //In this case it's only one list variable, which will now be referenced by listObj if (! PyArg_ParseTuple( args, "O", &listObj )) return NULL; //length of the list long length = PyList_Size(listObj); //iterate over all the elements int i, sum =0; for (i = 0; i < length; i++) { //get an element out of the list - the element is also a python objects PyObject* temp = PyList_GetItem(listObj, i); //we know that object represents an integer - so convert it into C long long elem = PyInt_AsLong(temp); sum += elem; } //value returned back to python code - another python object //build value here converts the C long to a python integer return Py_BuildValue("i", sum); } //This is the docstring that corresponds to our 'add' function. static char addList_docs[] = "add( ): add all elements of the list\n"; /* This table contains the relavent info mapping - <function-name in python module>, <actual-function>, <type-of-args the function expects>, <docstring associated with the function> */ static PyMethodDef addList_funcs[] = { {"add", (PyCFunction)addList_add, METH_VARARGS, addList_docs}, {NULL, NULL, 0, NULL} }; /* addList is the module name, and this is the initialization block of the module. <desired module name>, <the-info-table>, <module's-docstring> */ PyMODINIT_FUNC initaddList(void){ Py_InitModule3("addList", addList_funcs, "Add all ze lists"); } 逐步解释 Python.h头文件中包含了所有需要的类型(Python对象类型的表示)和函数定义(对Python对象的操作)接下来我们编写将要在Python调用的函数, 函数传统的命名方式由{模块名}_{函数名}组成,所以我们将其命名为addList_add然后填写想在模块内实现函数的相关信息表,每行一个函数,以空行作为结束最后的模块初始化块签名为PyMODINIT_FUNC init{模块名}。 函数addList_add接受的参数类型为PyObject类型结构(同时也表示为元组类型,因为Python中万物皆为对象,所以我们先用PyObject来定义)。传入的参数则通过PyArg_ParseTuple()来解析。第一个参数是被解析的参数变量。第二个参数是一个字符串,告诉我们如何去解析元组中每一个元素。字符串的第n个字母正是代表着元组中第n个参数的类型。例如,"i"代表整形,"s"代表字符串类型, "O"则代表一个Python对象。接下来的参数都是你想要通过PyArg_ParseTuple()函数解析并保存的元素。这样参数的数量和模块中函数期待得到的参数数量就可以保持一致,并保证了位置的完整性。例如,我们想传入一个字符串,一个整数和一个Python列表,可以这样去写 int n; char *s; PyObject* list; PyArg_ParseTuple(args, "siO", &n, &s, &list); 在这种情况下,我们只需要提取一个列表对象,并将它存储在listObj变量中。然后用列表对象中的PyList_Size()函数来获取它的长度。就像Python中调用len(list)。 现在我们通过循环列表,使用PyList_GetItem(list, index)函数来获取每个元素。这将返回一个PyObject*对象。既然Python对象也能表示PyIntType,我们只要使用PyInt_AsLong(PyObj *)函数便可获得我们所需要的值。我们对每个元素都这样处理,最后再得到它们的总和。 总和将被转化为一个Python对象并通过Py_BuildValue()返回给Python代码,这里的i表示我们要返回一个Python整形对象。 现在我们已经编写完C模块了。将下列代码保存为setup.py #build the modules from distutils.core import setup, Extension setup(name='addList', version='1.0', \ ext_modules=[Extension('addList', ['adder.c'])]) 并且运行 python setup.py install 现在应该已经将我们的C文件编译安装到我们的Python模块中了。 在一番辛苦后,让我们来验证下我们的模块是否有效 #module that talks to the C code import addList l = [1,2,3,4,5] print "Sum of List - " + str(l) + " = " + str(addList.add(l)) 输出结果如下 Sum of List - [1, 2, 3, 4, 5] = 15 如你所见,我们已经使用Python.h API成功开发出了我们第一个Python C扩展。这种方法看似复杂,但你一旦习惯,它将变的非常有效。 Python调用C代码的另一种方式便是使用Cython让Python编译的更快。但是Cython和传统的Python比起来可以将它理解为另一种语言,所以我们就不在这里过多描述了。
montos 2020-04-16 21:29:07 0 浏览量 回答数 0

回答

问题解析: 1、no module named yum 这种报错出现在Aliyun Linux系统,也会出现在Redhat/CentOS等使用yum的系统中。这种错误比较常见 2、yum是使用python开发的 原因分析: 大概率情况下是因为升级了python版本,比如安装了python3,默认的yum命令使用默认的python路径指向新的python 库了,导致找不到yum模块了 解决方案: 1、回退 2、which yum 查找到yum命令路径;which python2 查找Python2的路径 。修改yum第一行的python路径为老的python2命令的路径
赵文宇 2020-09-16 01:32:08 0 浏览量 回答数 0

问题

【精品问答】python百大常见问题与答案详解

为了方便python开发者快速找到相关技术问题和答案,开发者社区策划了python技术常见问题内容,包含最基础的如何学python实践中遇到的技术问题。下面我逐个码字整理的python入门必会的小知识࿰...
祖安文状元 2020-02-24 17:56:41 363 浏览量 回答数 1

回答

Python模块安装方法一、方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib二、方法2: 多文件模块,带setup.py下载模块包,进行解压,进入模块文件夹,执行:python setup.py install三、 方法3:easy_install 方式先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package了。easy_install packageNameeasy_install package.egg四、 方法4:pip 方式先进行pip工具的安裝:easy_install pip(pip 可以通过easy_install 安裝,而且也会装到 Scripts 文件夹下。)安裝:pip install PackageName更新:pip install -U PackageName移除:pip uninstall PackageName搜索:pip search PackageName帮助:pip help
世事皆空 2019-12-02 01:09:04 0 浏览量 回答数 0

回答

Python模块安装方法一、方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib二、方法2: 多文件模块,带setup.py下载模块包,进行解压,进入模块文件夹,执行:python setup.py install三、 方法3:easy_install 方式先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package了。 easy_install packageName easy_install package.egg四、 方法4:pip 方式 先进行pip工具的安裝:easy_install pip(pip 可以通过easy_install 安裝,而且也会装到 Scripts 文件夹下。)安裝:pip install PackageName更新:pip install -U PackageName移除:pip uninstall PackageName搜索:pip search PackageName帮助:pip help
世事皆空 2019-12-02 01:09:14 0 浏览量 回答数 0

回答

 1. 更加人性化的设计  Python的设计更加人性化,具有快速、坚固、可移植性、可扩展性的特点,十分适合人工智能;开源免费,而且学习简单,很容易实现普及;内置强大的库,可以轻松实现更大强大的功能。  2. 总体的AI库  AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法;  pyDatalog:Python中的逻辑编程引擎;  SimpleAI:Python实现在“人工智能:一种现代的方法”这本书中描述过的人工智能的算法,它专注于提供一个易于使用,有良好文档和测试的库;  EasyAI:一个双人AI游戏的python引擎。  3. 机器学习库  PyBrain 一个灵活,简单而有效的针对机器学习任务的算法,它是模块化的Python机器学习库,它也提供了多种预定义好的环境来测试和比较你的算法;  PyML 一个用Python写的双边框架,重点研究SVM和其他内核方法,它支持Linux和Mac OS X;  scikit-learn旨在提供简单而强大的解决方案,可以在不同的上下文中重用:机器学习作为科学和工程的一个多功能工具,它是python的一个模块,集成了经典的机器学习的算法,这些算法是和python科学包紧密联系在一起的;  MDP-Toolkit这是一个Python数据处理的框架,可以很容易的进行扩展。它海收集了有监管和没有监管的学习算饭和其他数据处理单元,可以组合成数据处理序列或者更复杂的前馈网络结构。新算法的实现是简单和直观的。可用的算法是在不断的稳定增加的,包括信号处理方法,流型学习方法,集中分类,概率方法,数据预处理方法等等。  4. 自然语言和文本处理库  NLTK开源的Python模块,语言学数据和文档,用来研究和开发自然语言处理和文本分析,有windows、Mac OSX和Linux版本。  Python具有丰富而强大的库,能够将其他语言制作的各种模块很轻松的联结在一起,对于性能要求高的功能,可以用C/C++进行重写,而后封装成Python可以调用的扩展类库,这是人工智能必备功能,因此,Python编程对人工智能是一门非常有用的语言。
世事皆空 2019-12-02 01:07:33 0 浏览量 回答数 0

回答

Python开发工程师 :一般需要精通Python编程语言,有Django等框架的使用经验,实习无要求。Python高级工程师 : 需要精通Linux/Unixg平台,有英语阅读功底。Web网站开发方向: 熟悉Web开发的常用 Python框架,熟悉掌握Mysql类数据库的操作即可。Python自动化测试:熟悉自动化流程、方法和常用的模块的使用,有英文读写的能力。Linux运维工程师: Linux服务器管理,数据分析、自动化处理任务、分析网站日志、定时计划管理,解放双手。Python游戏开发工程师: 网络游戏后端服务器逻辑的开发和处理,有大型数据库使用经验,喜欢从事游戏相关工作。Python自学爱好者。
大财主 2019-12-02 01:06:00 0 浏览量 回答数 0

回答

一、方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip或tar.gz),进行解压,CMD->cd进入模块文件夹,执行:python setup.py install 三、 方法3:easy_install 方式 先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package(文件名称、资源的URL、.egg文件(python egg文件)来下载安装文件) easy_install packageName easy_install package.egg 四、 方法4:pip 网络搜索自动安装 先进行pip工具的安裝:easy_install pip(pip 可以通过easy_install 安裝,而且也会装到 Scripts 文件夹下D:Python2.7Libsite-packages) 安裝:pip install PackageName pip常用命令列出安装的packages:pip freeze安装特定版本的package:通过使用==, >=, <=, >, <来指定一个版本号$ pip install 'Markdown<2.0'$ pip install 'Markdown>2.0,<2.0.3'升级包到当前最新的版本,可以使用-U或者--upgrade:升级包pip install -U Markdown卸载包:pip uninstall Markdown查询包:pip search "Markdown" 五、 方法5:.whl文件pip 方式 下载对应模块.whl文件,在CMD->cd命令下进入到.whl文件所在目录,如果pip目录未添加到环境变量,最好把.whl文件放置到pip.exe所在目录(D:Python2.7Scripts)。 安装: pip install 包名.whl 六、方法6:.exe文件自定义安装 下载对应版本的exe安装文件,如numpy-1.9.2-win32-superpack-python2.7.exe和mlpy-3.5.0.win32-py2.7.exe 安装:打开自动安装即可
元芳啊 2019-12-02 01:04:33 0 浏览量 回答数 0

回答

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。这也是人工智能必备知识。在人工智能上使用Python编程语言的优势:1.优质的文档2.平台无关,可以在现在每一个版本上使用3.和其他面向对象编程语言比学习更加简单快速4.Python有许多图像加强库像Python Imaging Libary,VTK和Maya 3D可视化工具包,Numeric Python, Scientific Python和其他很多可用工具可以于数值和科学应用。5.Python的设计非常好,快速,坚固,可移植,可扩展。很明显这些对于人工智能应用来说都是非常重要的因素。6.对于科学用途的广泛编程任务都很有用,无论从小的shell脚本还是整个网站应用。7.最后,它是开源的。可以得到相同的社区支持。希望我提供的答案能够帮助到你,你可以继续留言或者到论坛参与更多的互动,答案满意还请采纳一下,谢谢。
大财主 2019-12-02 01:05:17 0 浏览量 回答数 0

回答

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。这也是人工智能必备知识。在人工智能上使用Python编程语言的优势:1.优质的文档2.平台无关,可以在现在每一个版本上使用3.和其他面向对象编程语言比学习更加简单快速4.Python有许多图像加强库像Python Imaging Libary,VTK和Maya 3D可视化工具包,Numeric Python, Scientific Python和其他很多可用工具可以于数值和科学应用。5.Python的设计非常好,快速,坚固,可移植,可扩展。很明显这些对于人工智能应用来说都是非常重要的因素。6.对于科学用途的广泛编程任务都很有用,无论从小的shell脚本还是整个网站应用。7.最后,它是开源的。可以得到相同的社区支持。希望我提供的答案能够帮助到你,答案满意还请采纳一下,谢谢。另外,你可以继续留言或者到论坛参与更多的互动。
大财主 2019-12-02 01:05:03 0 浏览量 回答数 0

回答

//安装gccsudo apt-get install build-essential//安装python,官网下载,认准 python2.7(paddlepaddle目前只支持python2.7)//使用命令: tar -xvf xxxx (xxxx为下载的文件的路径)解压python压缩文件,成功之后,使用命令 python看是否安装成功.//安装pip ,使用如下命令:sudo apt-get install python-pip//安装之后更新pipsudo pip install --upgrade pip 为了防止后面的安装失败,继续安装一堆库,命令如下://安装tkinter模块apt-get install python-tk//安装numpypip install numpy//安装certifipip install certifi//安装setuptoolspip install setuptools//最后安装开始paddlepaddle吧pip install paddle
世事皆空 2019-12-02 01:09:30 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT