Python3导入自定义模块的3种方式

关于如何自定义一个模块,如果大家不懂的话还请先看下面这篇博文 ↓

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318447437605e90206e261744c08630a836851f5183000)

模块是个好东西啊,大牛们开源共享许多模块也加快了大家开发的速度,许多开源模块可以在这里找到 ↓

https://pypi.python.org/pypi

因为刚入门所有有很多细节不懂,在网上搜寻资料的时候发现各位大神们的教程实在太过于精简,让我这个菜鸟很辛苦的才操作成功。

因此在这里记录下来。


开始

第一种,直接 import

这里有个大前提,就是你的py执行文件和模块同属于同个目录(父级目录),如下图:

01

  • main.py 和 pwcong模块同在python目录
  • 执行文件为main.py
  • pwcong文件夹为一个模块

我把pwcong模块提供的函数写在 __init__.py 里,里面只提供一个 hi 函数:

# pwcong 模块的 __init__.py
# -*- coding: utf-8 -*-def hi():print("hi")
  • 1
  • 2
  • 3
  • 4
  • 5

执行文件main.py直接import模块:

# main.py
# -*- coding: utf-8 -*-import pwcongpwcong.hi()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

接着我们运行一下main.py可以看到命令行窗口输出了一句 hi ,第一种方式完成。

使用模块方式为:先导入-》接着输入模块.变量|函数, 如上面例子的 pwcong.hi()


第二种,通过sys模块导入自定义模块的path

如果执行文件和模块不在同一目录,这时候直接import是找不到自定义模块的。如下图:

02

  • 执行文件main.py在main目录下
  • pwcong模块在python目录下

sys模块是python内置的,因此我们导入自定义模块的步骤如下:

  1. 先导入sys模块

  2. 然后通过sys.path.append(path) 函数来导入自定义模块所在的目录

  3. 导入自定义模块。

这时候 main.py 这样写:

# main.py
# -*- coding: utf-8 -*-import sys
sys.path.append(r"C:\Users\Pwcong\Desktop\python")import pwcongpwcong.hi()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

最后执行main.py文件,最终输出 hi ,第二种方式完成。


第三种,通过pth文件找到自定义模块

这个方法原理就是利用了系统变量,python会扫描path变量的路径来导入模块,可以在系统path里面添加。但是我还是推荐使用pth文件添加。

模块和执行文件目录结构跟上图一样:

02

  • 执行文件main.py在main目录下
  • pwcong模块在python目录下

我们创建一个 module_pwcong.pth 文件,里面内容就是 pwcong模块所在的目录:

C:\Users\Pwcong\Desktop\python
  • 1

将该 module_pwcong.pth 文件放到这里:
python安装目录\Python35\Lib\site-packages

例如我的:
03

然后 main.py 导入并使用自定义模块:

# -*- coding: utf-8 -*-import pwcongpwcong.hi()

最后执行 main.py 文件,可以输出 hi ,第三种方式完成。

转载自https://blog.csdn.net/pwc1996/article/details/52577148

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask项目的部署详解

哈喽,很高兴又见面啦,一起加油一起学习,欢迎您的关注!https://blog.csdn.net/hanhanwanghaha学习路上有您的关注是我的荣幸,一起进步是我的动力,明天也一起加油啊! 目录宝塔更新Python版本apt安…

【Python】对象、类、元类

龟叔发明了Python,然后集成了一堆概念在这门语言里面,比如:迭代器,装饰器,函数,生成器,类,对象,协程等等。 这些概念对初学者似乎没一个好懂的,不过还有比这更…

JETBRAINS开发工具中Translation翻译插件的使用

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请注明出处(如不注明,盗者必究&#xf…

【Python】pdfminer3k模块批量转换本地PDF文件

上一篇文章自己研究了一下如何批量将word或者ppt文件转换为PDF文件,但是有时候我们也想要将pdf文件转换为word或者txt文件,方便复制和处理。本文主要通过调用pdfminer3k模块进行处理。 说明:本文是在Windows10下使用python最新的3.6版本虚拟…

Python读写json文件的简单实现

转载自https://blog.csdn.net/vitaminc4/article/details/77985175 介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C、Java、Ja…

Nacos配置

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请注明出处(如不注明,盗者必究&#xf…

【Python】如何选择赋值和拷贝

在Python中,一切皆为对象,对象通过「变量名」引用,「变量名」更确切的叫法是「名字」,好比我们每个人都有自己的名字一样,我们通过名字来代指某个人,代码里面通过名字来指代某个对象。变量赋值就是给对象绑…

❤️震惊!人生苦短,我用python来玩田忌赛马❤️

一读标题笑死自己哈哈哈,最近猪哥(玩得敲好的彭友)找我帮忙解决他不会作业哈哈哈,他们公司自己出的笔试题哈哈哈,希望别被他们出题人看见哈哈哈,回想猪哥说的一句话,万一这就是以后你遇到的试题…

错误之data_insertt() takes 1 positional argument but 2 were given解决方法

1、首先检测函数与调用直接的参数是否匹配。 2、若为python环境。 函数定义如下: 调用如下: 显示如下错误: 解决方法:在函数定义时添加self。即为: 则问题解决。 这是一个很基本的,但是很严重的错误。只…

python将Unix时间戳转换成时间

将时间戳转换成时间 在时间戳转换成时间中,首先需要将时间戳转换成localtime,再转换成时间的具体格式: 利用localtime()函数将时间戳转化成localtime的格式利用strftime()函数重新格式化时间 #coding:UTF-8 import timetimestamp 15324990…

错误之Only one usage of each socket address (protocol/network address/port)解决办法

错误如下: 解决方案:这个错误是端口占用导致。我们应找到此应用程序对应端口号的pid然后kill掉,即可ok

【测试】用例设计思路-六方面

有这样一个面试题:在一个Web测试页面上,有一个输入框,一个计数器(count)按钮,用于计算一个文本字符串中字母a出现的个数。 请设计一系列测试用例用以测试这个Web页面。 有经验的测试人员可能会问面试官&…

Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'

code: 1 #encodingutf-82 from django.db import models3 # Create your models here.4 class BookInfo(models.Model): #创建书本信息类,继承models.Model5 booktitlemodels.CharField(max_length20)6 bookdatamodels.DateField()7 class HeroInfo(model…

【Excel】函数DateDif查看两个日期之间的间隔

Excel中的DateDif函数是一个隐藏函数,在excel的公式以及帮助中是找不到的,必须要手工输入才可以。 此函数的格式为datedif("开始日期","结束日期","参数"),说明如…

【技巧】搜狗输入法特殊技巧

有时候我们报销或者其他情况下需要对金额进行大写,这时我们可以通过搜狗输入法进行转换;阅读的时候,我们会遇到一些特殊而且复杂的字,这个时候我们也可以通过搜狗输入法知道这个字怎么读。 先下载搜狗拼音输入法: 数字金额进行转换…

【商业】梳理你的商业模式

商业模式一直是一个好像每个人都能说两句,但是总也说不清楚的话题。 商业模式是企业的立身之本,也是企业的本质和核心。商业模式是人们商业智慧的集中体现,也是商业中最令人兴奋的部分。在商业模式的背后,有着太多的成功与失败、欢…

Django配置bootstrap

1、下载bootstrap文件。https://getbootstrap.com/docs/3.3/getting-started/ 下载的文件夹可以看出有css、fonts、js三个文件,这就是Bootstrap 3的全部 2、 自定义静态文件(css,js,image)位置 根目录下新建 static…

【Python爬虫】Windows环境下wxpy不需每次登陆重新扫描

有时候我们想每天向你女朋友或者某人发送一条信息(通过线程控制或者每天自动任务);此外我们可以通过更改wxpy中Bot()中参数,保存缓存不用每次都扫描二维码。 以下代码来源于:http://www.cnblogs.com/botoo/p/8622379.html from …

Win10系统设置任务计划执行python脚本

上一篇文章说了通过Python中的wxpy在微信每天发送一条消息到女朋友或者某个人,通过线程方式每天发送次消息。 这里主要说如何通过window10自带的“任务计划程序”,每天在指定时间发送一条消息。 1. 首先通过windows 10系统左下角输入框输入“任务计划程…

【Word 】隐藏功能生成特殊线

有时候在用word进行文字处理时,有一些方法可以快速生成特殊的线,以下是具体的一些方法: 1.输入3个“”,再按回车键Enter,生成一条双直线 2.输入3个“~~~”,再按回车键Enter,生成一条波浪线 3.输…