在C语言里为了工程文件的主程序main代码简洁的效果,我们经常用include“XXX”的来导入其.h文件

在Python里Import自己的自定义模块需要注意几个坑

以main主函数和需要导入的halo模块为例:

一、一般Import只需要将main.py和halo.py放在同一个文件夹即可成功导入

'''
main.py里直接导入使用即可
''' import halo
halo.hello('kumata') #输出hello,kumata

二、当不在同一个文件夹的时候,在halo的文件夹(kk)里命名__init__.py文件

__init__.py文件相当于一个标记作用,一个文件夹中包含这个文件,那么该文件夹在Python中被定义为Module,__init__.py中可以什么都不写,只要存在就行了。

'''
要注意主程序里import的写法(加了__init__.py之后kk就是一个package了)
''' from kk import halo
halo.hello('kumata') #输出 hello,kumata

三、使用sys在path中加入模块的路径

需要自己定义模块的存放位置就要先添加自己的路径到sys.path,通过sys.path.append(‘dir’)来添加自己的模块存储路径,其实就是像目录列表中添加一个元素

'''
以halo.py为例子
halo.py的路径为:C:\Users\BEAR\Desktop\Training\5.函数\kk ''' import sys
sys.path.append(r'C:\Users\BEAR\Desktop\Training\5.函数\kk') from kk import halo halo.hello('kumata')
#hello, kumata #也可以查看path都有哪些
print(sys.path)
'''
['C:\\Users\\BEAR\\Desktop\\Training\\5.函数', 'C:\\Users\\BEAR\\Desktop\\Training', 'C:\\Users\\BEAR\\Desktop\\Training\\venv\\Scripts\\python37.zip', 'C:\\python\\DLLs', 'C:\\python\\lib', 'C:\\python', 'C:\\Users\\BEAR\\Desktop\\Training\\venv', 'C:\\Users\\BEAR\\Desktop\\Training\\venv\\lib\\site-packages', 'C:\\Users\\BEAR\\Desktop\\Training\\venv\\lib\\site-packages\\setuptools-39.1.0-py3.7.egg', 'C:\\Users\\BEAR\\Desktop\\Training\\venv\\lib\\site-packages\\pip-10.0.1-py3.7.egg', 'C:\\Users\\BEAR\\Desktop\\Training\\5.函数\\kk']
'''
#可以看到python的所有检索范围,而排在第一位的就是当前目录

Python:导入自定义模块的更多相关文章

  1. python导入自定义模块

    上网查了下资料和自己实验了下,有几个方法: 1.如果导入的模块和主程序在同个目录下,直接import就行了 2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__ ...

  2. python导入自定义模块和包

    参考资料 https://blog.csdn.net/gvfdbdf/article/details/52084144 http://www.runoob.com/python/python-modu ...

  3. python 导入自定义模块

    1. 2.

  4. 【python】导入自定义模块

    一.直接import 1.当执行文件与要导入的py文件在同一目录下时 假设要在wangyi.py中导入weibo.py文件 import weibo 2.当执行文件与要导入的py文件所在文件夹在同一目 ...

  5. vscode如何配置debug,python正则表达式如何匹配括号,关于python如何导入自定义模块

    关于vscode如何配置debug的问题: 1.下载安装好python,并且配置好 环境变量 2.https://www.cnblogs.com/asce/p/11600904.html 3.严格按照 ...

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

    前话 最近跟着廖雪峰的教程学到 模块 这一节.关于如何自定义一个模块,如果大家不懂的话还请先看下面这篇博文 ↓ http://www.liaoxuefeng.com/wiki/001431608955 ...

  7. python3导入自定义模块

    模块是个好东西啊,大牛们开源共享许多模块也加快了大家开发的速度,许多开源模块可以在这里找到 ↓ https://pypi.python.org/pypi 因为刚入门所有有很多细节不懂,在网上搜寻资料的 ...

  8. pycharm IDE在导入自定义模块时提示有错,但实际没错

    在建立python项目时,有时为了区分资源和代码,如在项目文件夹下新建img和src两个文件夹,这时导入自定义模块会提示错误,结果没错但感觉别扭.如: 这是因为pycharm提示功能是从根目录上去寻找 ...

  9. python 导入re模块语法及规则

    正则表达式是功能比较强大的模块,应用在很多地方,抓网页,数据分析,数据验证等,下面讲述python 导入re模块语法及规则. 1,re模块语法 re.match 从头开始匹配 re.search 匹配 ...

随机推荐

  1. ORA-214 signalled during: ALTER DATABASE MOUNT 问题

    数据库服务器移动了位置,后来再连其数据库发现提示无法连接,大致为“无法为所有新实例创建连接...”,查看alert日志发现有如下错误: starting up 1 dispatcher(s) for ...

  2. MySQL 数据的 截取,数据清洗

    Mysql字符串截取函数SUBSTRING的用法说明 函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(conte ...

  3. 5 Protocols For Event-Driven API Architectures

    The internet is a system of communication, and as such, the relationship between client and server, ...

  4. bindpose定义

    根据常识,有: 但根据骨骼动画的定义,又有: 对比两式,可得bindpose的定义: 即骨骼bone的bindpose是:在绑定时刻,将顶点由mesh的局部空间变换到bone的局部空间的变换.

  5. 第一部分:开发前的准备-第三章 Application 基本原理

    第3章 应用程序基本原理 首先我们需要强调一下Android 应用程序是用java写的.Android SDK工具编译代码并把资源文件和数据打包成一个文件.这个名字的扩展名是.APK.要在androi ...

  6. Mac安装crfpp

    Mac安装crfpp 步骤 git clone https://github.com/taku910/crfpp.git ./configure make sudo make install cd p ...

  7. LeetCode: Find Peak Element 解题报告

    Find Peak Element A peak element is an element that is greater than its neighbors. Given an input ar ...

  8. Java知多少(73)文件的压缩处理

    Java.util.zip 包中提供了可对文件的压缩和解压缩进行处理的类,它们继承自字节流类OutputSteam 和 InputStream.其中 GZIPOutputStream 和 ZipOut ...

  9. [微信开发] 微信JSAPI - 获取用户地理位置信息

    参考博客 http://blog.csdn.net/u013142781/article/details/50503299 主要JS 方法 wx.getLocation 获取地理位置信息传递参数 成功 ...

  10. ABBYY OCR技术教电脑阅读缅甸语(上)

    缅甸联邦共和国,原名缅甸,是东南亚的一个国家,从1962年到2010年,缅甸一直被政变后上台的军政府统治,直至最近5年它才对外界开放,与其他国家建立了贸易与文化联系. 缅甸语由很多方言组成,但所有方言 ...