导航:首页 > 编程语言 > python导入模块

python导入模块

发布时间:2022-01-16 23:30:56

① 详解python中import方法引入模块

在python用import或者from...import或者from...import...as...来导入相应的模块,作用和使用方法与C语言的include头文件类似。其实就是引入某些成熟的函数库和成熟的方法,避免重复造轮子,提高开发速度。
python的import方法可以引入系统的模块,也可以引入我们自己写好的共用模块,这点和php非常相似,但是它们的具体细节还不是很一样。因为php是在引入的时候指明引入文件的具体路径,而python中不能够写文件路径进行引入。
下面总结一下import的几种情况:
python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。
下面将具体介绍几种常用情况:
(1)主程序与模块程序在同一目录下:
如下面程序结构:
`-- src
|-- mod1.py
`-- test1.py
若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *;
(2)主程序所在目录是模块所在目录的父(或祖辈)目录
如下面程序结构:
`-- src
|-- mod1.py
|-- mod2
| `-- mod2.py
`-- test1.py
若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import * 或import mod2.mod2.
(3)主程序导入上层目录中模块或其他目录(平级)下的模块
如下面程序结构:
`-- src
|-- mod1.py
|-- mod2
| `-- mod2.py
|-- sub
| `-- test2.py
`-- test1.py
若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:
下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py
而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。
import sys
sys.path.append("..")
import mod1
import mod2.mod2

② python 导入模块问题

导入模块是会执行一遍的
如果不想在导入模块时执行某部分代码,
需要将那部分代码到
if __name__=='__main__': 里面,
那部分代码只会在当他是作为主文件运行时才会跑

③ 有关Python导入模块的问题

我真的是。。。小白是真的可怜,连续回答了四个问题了。。。
你先查一下网络行吗,你看楼下在回答啥?我直接懵了。
要么把你要导入的文件放在你这个程序的下方后直接import,要么加相对地址。

④ 初学python,有关导入模块的问题

怪了,我运行出来的结果是11:

⑤ Python导入模块问题


这个问题涉及到包和模块管理。包名和模块名一般是小写。你的文件是下面的结构,需要创建空文件 b/__init__.py,将b目录变成package。
a/a.py

fromb.cimportindex
index()


b/c.py

defindex():
print("hello")


b/__init__.py
a/a.py 里面有两种引用方式,相对引用和绝对引用:
# 如果a.py是 library,两种引用方式都可以

from..b.cimportindex


# 如果a.py是 executable,必须使用绝对引用

fromb.cimportindex


如果使用绝对引用,需要确保b所在目录在PYTHONPATH (sys.path)里面,比如可以这样执行:

envPYTHONPATH=.pythona/a.py



⑥ 如何导入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=[1,2,3]def printme(var): print varif __name__ == '__main__': printme(1)

data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。
引入模块示例如下:(假定此时data=[1,2,3]未定义)

>>> import a>>> a.data Traceback (most recent call last): File "<pyshell#1>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>> reload(a)<mole 'a' from 'C:/py\a.pyc'>>>> a.data Traceback (most recent call last): File "<pyshell#3>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>>

从上述提示可以看出data属性未定义,此时再在a.py文件中定义data=[1,2,3],重新加载a模块,并输出data属性:
>>> reload(a)<mole 'a' from 'C:/py\a.py'>>>> 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了。

⑦ python导入模块问题

其实很简单,这是命名空间的问题,每个模块或者一个包就是一个命名空间,每个都相对独立的,只有导入时才会有某种关系存在。
也就是说,如果你在connect.py文件里没有导入time模块,使用的话本来就会提示time没有定义(因为你事先没有导入嘛)。然后当程序运行时,会优先把模块和定义的函数先走一遍存在缓存里(你可以理解为检测一篇),然后再按照代码顺序由上而下运行。所以当程序优先运行模块和定义的函数时,发现你的connect.py报错,那么后面与这个函数或者模块相关的代码都不会再继续运行。

所以你在connect.py的文件里import time,而主py文件不需要导入time模块就行。

⑧ 如何导入其他位置的python模块

import sys
print sys.path

上面的代码会给出所有可用的python路径,你把.py文件放到这些路径下面就可以在其他文件里导入它了。
另外一个特殊的路径就是当前路径,比如你在一个文件夹test下新建两个.py文件,分别为123.py 和456.py ,那么你可以在123.py写:

1

import 456

就可以导入456.py了。

python的模块都是.py文件,提示invaild syntax 是说语法错误。如果你用的是python3,那你的print就写错了。python2和3的print 区别如下。

1
2

print 'hello world' #python2
print('hello world') #python3

⑨ python怎么导入同一包的模块

一、何为模块

1.一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。

2.模块目的和函数,对象等一样,是为了代码的复用性而存在的。即一个py程序写了很多功能,也可以被其他py程序调用。被调用后被作为模块,此时会产生一个pyc的文件即为这个模块的缓存文件,相当于编译了模块文件使该py模块被调用的速度变快。一个大的项目一个人肯定是不行的,所以模块也为程序员相互间的合作提供了便利。

二、模块妙用

1.import

只需要在py程序开头加上import 文件名(不能有.py后缀)。例如,模块的文件名是span.py,那么只需在自己的py程序加import span。

2. import可以在程序的任意位置调用,但一次调用后会驻留内存,下次再调用会直接调用内存中的模块(python的优化)。

3.个模块都是一个独立的名称空间,定义在这个模块中的函数,把这个模块的名称空间当做全局名称空间,这样我们在编写自己的模块时,就不用担心我们定义在自己模块中全局变量会在被导入时,与使用者的全局变量冲突。

print('from the spam.py')

money=1000def read1(): print('spam->read1->money',1000)def read2(): print('spam->read2 calling read')
read1()def change(): global money
money=0

支持tab自动补全

阅读全文

与python导入模块相关的资料

热点内容
我的理想程序员该怎么写 浏览:840
英译中国现代散文选pdf 浏览:446
装饰设计模式java 浏览:21
linuxshell清屏命令 浏览:134
惠利app是什么 浏览:779
游戏端口读取服务器失败怎么弄 浏览:878
linux修复mbr 浏览:128
磁盘格式化基本命令 浏览:578
程序员掉入异世界 浏览:954
andlua画质助手源码 浏览:577
winrar解压格式怎么看 浏览:147
qt编程入门pdf 浏览:599
php中是根据指针查的数据吗 浏览:276
安卓手机驱动为什么不能提取通用 浏览:708
转行程序员失败的人 浏览:728
延迟命令方块 浏览:499
某视频网站为什么安卓可以投屏 浏览:651
服务器解释器在哪个文件夹 浏览:95
app督促服务在哪里 浏览:992
命令与征服3语音 浏览:999