当前位置: 首页 > 科技观察

导入Python包的几种方法,自定义包的生成及导入详解

时间:2023-03-16 17:38:34 科技观察

对于刚入门的python爱好者来说,最先接触的应该是import直接导入包的方式,比如导入时间,也就是python运行的时间是引入包,这个包中的方法可以处理我们项目中遇到的大部分时序问题。下面我将详细介绍几种导入包的方式(在开发过程中绝对够用)以及如何将其他文件夹中的python模块生成成我们可以应用的包。1.import是常规导入,直接导入整个包的所有功能。例如:importtime,使用import直接导入python的time模块。2.import多次导入,导入多个包的所有函数。3.from...import...导入整个包的部分功能。第一次导入是:导入random模块(包)的randint函数。第二次导入是:导入time模块(包)的time和localtime函数,以.隔开。4.当然你也可以使用from...import*这个也是直接导入包的所有功能。相当于import...5.重要的是,在实际应用中用的比较多。我们自定义自己写的功能包。先在任意路径下创建一个文件夹,用来放我们自定义的包文件。我的创建在/home/xyh/test_package,下面是我的目录结构。在另一个不相关的文件夹下的python应用程序中引用我们的自定义包。就是导入/home/xyh/test_package2/use_lucky_package.py中的lucky_package.py包。测试直接importlucky_package.py或者直接fromtest_packageimportlucky_package.py都不行。直接导入,出现程序运行报错:导入成功需要两步:第一:在test_package文件夹下创建_init_.py文件,里面什么都不用编辑。第二:在代码中,将test_package文件的路径添加到python解释器可以搜索到的路径列表中。在这里,使用了python包sys模块。下面是运行过一次的目录结构:pyc文件是py文件编译后生成的字节码文件。它不需要自己创建。第一次导入成功并运行成功后会自动生成。附上lucky_package.py(打包程序)和use_lucky_package.py(参考打包程序)的简单源码:#_*_coding:utf-8_*_#导入随机模块,我们要做的包需要自定义withimportrandom#包模块deftest():print(random.randint(1,10))return('helloworld')use_lucky_package.py#_*_coding:utf-8_*_importsys#动态添加的路径test_package文件夹,为了能够让这个文件夹下的#custompackagesuccessfulimport#根据自己实际包的modules来确定路径。sys.path.append('../')#打印所有python解释器可以搜索到的路径print(sys.path)#从test_package导入自定义包.lucky_packageimport*#输出lucky_package中测试函数的结果:result=test()print(result)上面代码的运行结果:其实对于不经常使用python的用户来说,导入模块可能会很头疼。他们并不知道python导入包的机制其实非常灵活。当你大概知道了python解释器是如何找到并引用这些包的,那么你写的所有程序函数都可以作为包供你调用,只要你高兴。希望本文能帮助解决python使用中导入包带来的麻烦。