[学习笔记]

自定义模块 
使用的是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. 微信jssdk config:invalid signature 签名错误 ,问题排查过程

    invalid signature签名错误.建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisi ...

  2. 经典Hash函数的实现

    Hash函数是指把一个大范围映射到一个小范围.把大范围映射到一个小范围的目的往往是为了节省空间,使得数据容易保存. 除此以外,Hash函数往往应用于查找上.所以,在考虑使用Hash函数之前,需要明白它 ...

  3. 性能测试入门 — LoadRunner 使用初探

    前言: 性能测试是利用产品.人员和流程来降低应用程序.升级程序或补丁程序部署风险的一种手段.性能测试的主要思想是通过模拟产生真实业务的压力对被测系统进行加压,验证被测系统在不同压力情况下的表现,找出其 ...

  4. Logistic回归二分类Winner or Losser----台大李宏毅机器学习作业二(HW2)

    一.作业说明 给定训练集spam_train.csv,要求根据每个ID各种属性值来判断该ID对应角色是Winner还是Losser(0.1分类). 训练集介绍: (1)CSV文件,大小为4000行X5 ...

  5. jdk源码阅读笔记-ArrayList

    一.ArrayList概述 首先我们来说一下ArrayList是什么?它解决了什么问题?ArrayList其实是一个数组,但是有区别于一般的数组,它是一个可以动态改变大小的动态数组.ArrayList ...

  6. WinForm的DataGirdView判断CheckBox是否被选中

    首先我们先设置下DataGirdView的列. 然后启动下编辑,就可以选中与不选中了.在之后通过. #region 便利被选中的行,然后导出 DataTable dtreport = new Data ...

  7. .NET Core使用Quartz执行调度任务进阶

    一.前言运用场景 Quartz.Net是一个强大.开源.轻量的作业调度框架,在平时的项目开发当中也会时不时的需要运用到定时调度方面的功能,例如每日凌晨需要统计前一天的数据,又或者每月初需要统计上月的数 ...

  8. java游戏开发杂谈 - 创建一个窗体

    package game1; import javax.swing.JFrame; /** * java游戏开发杂谈 * ---demo1:创建一个窗体 * * @author 台哥 * @date ...

  9. CentOS 7.6 使用kubeadm安装Kubernetes 13

    实验环境:VMware Fusion 11.0.2 操作系统:CentOS 7.6 主机名 IP地址 CPU 内存 k8s2m 172.16.183.151 2核 4G k8s2n 172.16.18 ...

  10. 带你找到五一最省的旅游路线【dijkstra算法推导详解】

    前言 五一快到了,小张准备去旅游了! 查了查到各地的机票 因为今年被扣工资扣得很惨,小张手头不是很宽裕,必须精打细算.他想弄清去各个城市的最低开销. [嗯,不用考虑回来的开销.小张准备找警察叔叔说自己 ...