[学习笔记]

自定义模块 
使用的是pycharm

说白了就是.py文件都可以作为模块导入,像定义一个文件 名字为Mycode

__all__ = ["add","sub","mul","div"]  # 设置此方法 可以使用导入模块 from Mycode import *
def add(a,b):#写入自定义方法
    return a + b

def sub(a,b):
    return a - b

def mul(a,b):
    return a * b

def div(a,b):
    return a / b
if __name__ == "__main__":#限制条件 就是导入这个模块时不执行以下代码 而在这个文件可以执行                                                                         因为 name和 main 就是文件名 导入后__main__文件名就发生改变
    a = 10
    b = 20
    print(add(a,b)) >>30
在发布自定义模块之前先谈导入模块 有两种方式 import+导入的模块 和 from.....import .....都熟悉不再详写

还有创建一个包package文件,其实充当文件夹的意思,可以有效的避免重复,包中包含__init__文件,可以在文件中设置起到辅助导入模块作用。导入时就直接加上包名就可以。

可能还会出现无法导入的问题,注意导入时留意目录结构,若是三级目录要连同二级目录一起导入,同时目录名不要写数字。

若是要在别的项目中也要导入此模块就涉及到模块的发布安装。

导入模块前要检查路径,若是系统查找模块路径中没有就要添加路径,以及要注意路径搜查顺序是依次执行的

import sys #导入sys模块

sys.path.append("要添加的路径")注意路径符号 “\” 反斜杠表示转义 报错时可以使用 “\\” 或直接使用 “/”

如sys.path.append(“E;/preactive/dayis”) 就可以使用导入模块

自定义模块发布安装
在同文件夹下生成set.up为名的函数

编辑setup文件
from distutils.core import setup

setup(name='压缩包的名字',version='1.0',description='描述',

author='me"',py_modules=['package1.模块1','package1.模块2',

'package2.模块1'])#为模块名 一个就写一个即可 ,使用的是包和set.up文件

编辑完成将包(包内有__init__文件和Mycode文件)和set.up文件复制到桌面并创建文件夹

在文件夹路径格中直接打cmd 就出现命令提示符 就省去复制路径的功夫

要发布的目录结构(uft-8格式)

|----setup.py

|----package1

|----module1

|----module2

|----package2

|----module3

|----module4

构建模块

DOS窗口找到该文件

python setup.py build

生成发布压缩包

python setup.py sdist

自定义模块的安装、使用

安装的方式
找到模块的压缩包
解压
进入文件夹
执行命令 python setup.py install
注意:如果在install的时候,

指定目录安装,可以使用

python setup.py install --prefix=安装路径

暴力安装

不提倡,文件繁多误删会很难恢复

直接将包复制到  pycharm 中 项目底部 External libraries --python3.6--lib --site-packages 
C:\Program Files\Python36\Lib\site-packages

版权声明:本文为转载文章,原文地址:https://blog.csdn.net/Chujianlong321/article/details/89075185

python 自定义模块的发布和安装的更多相关文章

  1. Python中模块的发布与安装

    模块(Module) Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个 ...

  2. (转载)Python中模块的发布与安装

    模块(Module) Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个 ...

  3. 万恶之源 - Python 自定义模块

    自定义模块 我们今天来学习一下自定义模块(也就是私人订制),我们要自定义模块,首先就要知道什么是模块啊 一个函数封装一个功能,比如现在有一个软件,不可能将所有程序都写入一个文件,所以咱们应该分文件,组 ...

  4. 17.python自定义模块的导入方式

    1.直接用import导入 最后运行main.py可以看到命令行窗口输出了一句:你好,这样就完成了. 2.通过sys模块导入自定义模块的路径path 3.在环境变量中找到自定义模块 这个方法原理就是利 ...

  5. Python自定义模块

    自定义模块 自定义模块(也就是私人订制),我们要自定义模块,首先就要知道什么是模块 一个函数封装一个功能,比如现在有一个软件,不可能将所有程序都写入一个文件,所以咱们应该分文件,组织结构要好,代码不冗 ...

  6. 从入门到自闭之Python自定义模块

    自定义模块 定义:一个文件就是一个模块(能被调用的文件,模块就是一个工具箱,工具就是函数) 作用: 将代码文家化管理,提高可读性,避免重复代码 拿来就用(避免重复造轮子),python中类库比较多,提 ...

  7. Python 自定义模块位置

    1.需要找出Python解释器从哪里查找模块: 具体方法: >>> import sys,pprint>>> pprint.pprint(sys.path)['', ...

  8. Python requests模块在Windows下安装

    发现一个爬虫库太方便了,而且支持python3! 安装方法在http://docs.python-requests.org/en/latest/user/install/#install很详细 只不过 ...

  9. Python 自定义模块的打包和发布

    写了一个Python模块,要求打包发布,供同事们使用,好吧,查了一下,网上大部分教程没有一个能把话说明白,不过最后还是解决了,特此记录一下, 以免下次遇到同样问题,也帮助其他有缘人,哈哈. 首先看一下 ...

随机推荐

  1. Mybatis配置详解

    一.SqlSession的使用范围说明  1.SQLSessionFactoryBuilder   通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory, ...

  2. 响应式编程知多少 | Rx.NET 了解下

    1. 引言 An API for asynchronous programming with observable streams. ReactiveX is a combination of the ...

  3. Java后端框架之Spring Boot详解,文末有Java分布式实战项目视频可取

    在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两 ...

  4. 残差网络(Residual Networks, ResNets)

    1. 什么是残差(residual)? “残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.”“如果回归模型正确的话, 我们可以将残差看作误差的观测值.” 更准确地,假设我们想要找一个 $x$ ...

  5. 很详细的Django入门详解

    Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T.在学 ...

  6. SpringBoot集成Lombok,应用+源码解析,让代码优雅起来

    一.Lombok简介 (1)Lombok官网(https://projectlombok.org/)对lombok的介绍 (2)GitHub项目地址:https://github.com/rzwits ...

  7. 详解mybatis映射配置文件

    一  mybatis 映射文件结构 mybatis映射配置文件存在如下顶级元素,且这些元素按照如下顺序被定义. cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的 ...

  8. Java虚拟机三:OutOfMemoryError异常分析

    根据Java虚拟机规范,虚拟机内存中除过程序计数器之外的运行时数据区域都会发生OutOfMemoryError(OOM),本文将通过实际例子验证分析各个数据区域OOM的情况.为了更贴近生产,本次所有例 ...

  9. headfirst设计模式(9)—模板方法模式

    前言 这一章的模板方法模式,个人感觉它是一个简单,并且实用的设计模式,先说说它的定义: 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式.让子类别在不改变算法架构的情况下, ...

  10. h5实现实时时钟

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <meta nam ...