python怎么导入模块

推荐 生活 2019-07-11 23:36:54 159

本文收集整理关于python怎么导入模块的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:如何导入python中的模块
  • Q2:python 怎么导入smbus模块
  • Q3:python怎么导入模块gevent
  • Q4:python 模块可以相互导入吗
  • Q5:python怎么导入自己写的模块
  • Q6:在python中导入模块中的对象有哪几种方式
  • Q7:如何在Python中导入Android模块
  • Q1:如何导入python中的模块

    定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。
    比如说,下面的代码输入到一个文件中,就可以看作是一个模块:
    def printme(var):print varif __name__ == __main__:printme(1)
    假设说输入到a.py中,那么import a就可以把这个模块导入。
    然后可执行a.printme(3),屏幕即可打印出3:
    >>> a.printme(3)3>>>
    一个模块顶层定义的变量,会自动变成模块的属性。例如:
    data=http://127.0.0.1/yijitao/[1,2,3]def printme(var):print varif __name__ ==__main__:printme(1)
    data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。
    引入模块示例如下:(假定此时data=http://127.0.0.1/yijitao/[1,2,3]未定义)
    >>> import a>>> a.data Traceback (most recent call last): File "", line 1, in a.dataAttributeError: module object has no attribute data>>> reload(a)>>> a.data Traceback (most recent call last): File "", line 1, in a.dataAttributeError: module object has no attribute data>>>
    从上述提示可以看出data属性未定义,此时再在a.py文件中定义data=http://127.0.0.1/yijitao/[1,2,3],重新加载a模块,并输出data属性:
    >>> reload(a)>>> a.data[1, 2, 3]>>>
    这里的reload函数可以重新加载一个模块。如果在模块代码中更改了,那么需要重新加载。
    上面a.data,就是访问模块中的属性。
    上面的例子是导入一个文件作为一个模块。
    其实python的模块导入还有更丰富的内容。
    除了模块名之外,python也可以导入指定目录路径。python代码的目录就称为包。因此,这类导入就称为包导入。事实上,包导入是把计算机上的目录变成python的一个命名空间。而属性就是目录中包含的子目录或者是模块文件。
    看下面例子:
    在我的桌面上有一个aa文件夹,里面有bb文件夹,bb里面有a.py这个文件。
    那么在aa和bb文件夹中分别放置一个__init__.py,之后,在命令行中import aa.bb.a,就可以导入模块a了。

    Q2:python 怎么导入smbus模块

    什么操作系统?

    Ubuntu的话试试这个:

    sudoapt-getupdate
    sudoapt-getupgrade
    sudoapt-getdist-upgrade
    sudoapt-getinstallbuild-essentialpython-devpython-setuptoolspython-pippython-smbus
    sudoapt-getinstalllibncursesw5-devlibgdbm-devlibc6-dev
    sudoapt-getinstallzlib1g-devlibsqlite3-devtk-dev
    sudoapt-getinstalllibssl-devopenssl
    sudoapt-getinstalllibffi-dev

    sudoaptinstall-ypython3-smbus

    Q3:python怎么导入模块gevent

    Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。
    gevent是第三方库,通过greenlet实现协程,其基本思想是:
    当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经常使程序处于等待状态,有了gevent为我们自动切换协程,就保证总有greenlet在运行,而不是等待IO。

    Q4:python 模块可以相互导入吗

    模块A中import B,而在模块B中import A。这时会怎么样呢?这个在Python列表中由RobertChen给出了详细解释,抄录如下:[A.py]
    from B import D
    class C:pass
    [B.py]
    from A import C
    class D:pass

    为什么执行A的时候不能加载D呢?

    如果将A.py改为:import B就可以了。

    这是怎么回事呢?

    RobertChen:这跟Python内部import的机制是有关的,具体到from B import D,Python内部会分成几个步骤:

    在sys.modules中查找符号"B"

    果符号B存在,则获得符号B对应的module对象

    的__dict__中获得符号"D"对应的对象,如果"D"不存在,则抛出异常

    如果符号B不存在,则创建一个新的module对象,注意,这时,module对象的__dict__为空。

    执行B.py中的表达式,填充的__dict__ 。

    的__dict__中获得"D"对应的对象,如果"D"不存在,则抛出异常。

    所以,这个例子的执行顺序如下:

    1、执行A.py中的from B import D

    由于是执行的python A.py,所以在sys.modules中并没有存在,首先为B.py创建一个module对象(),注意,这时创建的这个module对象是空的,里边啥也没有,在Python内部创建了这个module对象之后,就会解析执行B.py,其目的是填充这个dict。

    2、执行B.py中的from A import C

    在执行B.py的过程中,会碰到这一句,首先检查sys.modules这个module缓存中是否已经存在了,由于这时缓存还没有缓存,所以类似的,Python内部会为A.py创建一个module对象(),然后,同样地,执行A.py中的语句。

    3、再次执行A.py中的from B import D

    这时,由于在第1步时,创建的对象已经缓存在了sys.modules中,所以直接就得到了,但是,注意,从整个过程来看,我们知道,这时还是一个空的对象,里面啥也没有,所以从这个module中获得符号"D"的操作就会抛出异常。如果这里只是importB,由于"B"这个符号在sys.modules中已经存在,所以是不会抛出异常的。

    上面的解释已经由Zoom.Quiet收录在啄木鸟了,里面有图,可以参考一下:

    Q5:python怎么导入自己写的模块

    把自写模块和当前的python文件放在同一个文件夹,然后通过如下语句导入:
    from . import module_name

    Q6:在python中导入模块中的对象有哪几种方式

    1、导入整个模块:

    一般格式为:

    import 模块1[模块2[,...]]

    模块名就是程序文件的前缀,不含.py,可一次导入多个模块,导入模块后,调用模块中的函数或类时,需要以模块名为前缀,这样代码读起来更容易理解.

    例:

    >>>import math

    >>>math.sin(0.5)

    0.4794255

    2、与form联用导入整个模块:

    一般格式为:

    form 模块名 import*

    这种方式导入模块后,调用模块中的函数或类,仅使用函数名或类名,代码简洁,但可读性差,不容易理解

    例:

    >>>form math import*

    >>>cos(0.5)

    0.8775825

    3、与form联用导入一个或多个对象:

    一般格式为:

    form 模块名 import 对象1[,对象2[,对象...]]

    这种方式只导入模块中的一个或多个对象,调用模块中的对象时,仅使用对象名(#与方法二类似)

    例:

    >>>form math import sin,cos,exp

    >>>sin(0.5)

    0.4794255

    >>>cos(0.5)

    0.8775825

    >>>exp(1)

    2.7182818

    扩展资料

    Python中常用模块

    math:模块定义了标准的数学方法,如sin、cos

    random:模块提供了各种方法来产生随机数

    datetime:模块中有日期时间处理方法

    time:模块中有时间、时钟、计时相关的方法

    tkinter:模块提供了图形界面开发的方法

    www.YijItAO.co@m

    Q7:如何在Python中导入Android模块

    应该先下载一个android模块,再导供袱垛惶艹耗讹同番括入。我的也是:ImportError: No module named android
    找不到模块,你环境变量设置的有问题吧。如果没有在默认的python lib目录下,你应该要手工加进去的。

    相关文章
    python安装后怎么打开2019-02-19
    python怎么运行py文件2019-02-26
    python 字符串查找所有2019-03-18
    python爬取网页 下一页2019-03-18
    python安装第三方模块2019-03-20
    python3爬虫入门教程2019-04-05
    python异常处理的主动抛出2019-04-05
    python判断是否整除2019-04-07
    python要学多久才能去工作2019-04-11
    python求三个数平均值2019-04-12