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,一经查实,立即删除!

相关文章

【Python】一些容易忽略的知识点

设置源文件编码 在默认情况下,Python3源码文件是以UTF-8编码进行保存的,所有的字符串都是unicode编码格式。 一般情况下,我们在源码文件第一行使用如下语法进行编码声明: # -*- coding:utf-8 -*- 如何查看Python关键字 在Python3中预留了一…

Flask项目的部署详解

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

python3的 pymysql把mysqldb库取代了,让python 3支持mysqldb的解决方法

原因 MySQLdb 只适用于python2.x,发现pip装不上。 它在py3的替代品是: import pymysql 安装方法: pip install pymysql djangomysql 12 而Django默认的还是使用MySQLdb:执行会报:ImportError: No module named ‘MySQLdb’解决…

【Python】对象、类、元类

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

Python3利用pymysql操作 MySQL

打开cmd利用pip3 install pymysql -i https://pypi.doubanio.com/simple 进行安装 包括数据库的链接,增删查改 import pymysql # 导入 pymysql # 打开数据库连接 db pymysql.connect(host"localhost", user"root",password"123456&q…

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

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

【Python】comtypes模块Windows环境下使用批量转换成PDF文件

最近在微信看到一篇文章介绍说批量将ppt文件转化为pdf文件,自己尝试了一下,后面想能否自己封装一个类,既能将ppt转换为pdf,而且能够将word转换为pdf,或者其他类型转化为pdf。花了半天时间研究和找资料,终于…

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

分布式Session共享问题解决

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

【Python】元组和列表相关知识总结

python中,我们经常用到元组和列表,本文主要总结了一下元组和列表的一些基本用法。 #作者:cacho_37967865 #博客:https://blog.csdn.net/sinat_37967865 #文件:teamList.py #日期:2018-05-06 #备注&#xf…

python 写入json数据到数据库

json数据格式: # json格式数据 data{"camera": {"created": "1531925035","type": 1,"description": "A bridge is a structure that is built over a railway, river, or road so that people or vehicle…

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

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

【测试】软件测试 QA、QC、QM的关系与区别?

质量体系之:软件测试 QA、QC、QM的关系与区别? 关键词:QA是未雨绸缪,测试是亡羊补牢 经常看到有些人把QA、QC、QM的概念搞混,认为他们是同一个概念的不同描述,由于这三者都是舶来品,并且翻译者在…

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

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

【测试】优秀软件测试工程师必备的8个能力

作为一名软件工程师,需要的能力并不多,但是要成为一名优秀的软件测试工程师,需要的能力就比较多了。 一、业务分析能力 1、分析整体业务流程 不了解整个公司的业务,根本就没办法进行测试。 2、分析被测业务数据 了解整个业务里…

python将Unix时间戳转换成时间

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

【Python爬虫】爬虫程序的简单处理过程

一月份的时候有写过一篇文章,是关于如何解析网站,然后将图片下载下来,爬虫爬取美女图片存入到动态的文件夹中 今天主要总结的是爬虫的一个基本思路,主要有: 1.获取一个网页get_one_page() 我们知道一个网页可能由多个…