python制作模块与包(python 模块包)

python制作模块与包(python 模块包)Python模块的安装方法:

本文目录一览:

如何制作python安装模块

Python模块的安装方法:

1. 单文件模块:直接把文件拷贝到$python_dir/lib

2. 多文件模块,带setup.py:python setup.py install

3. egg文件,类似Java的jar:

1) 下载ez_setup.py,运行python ez_setup

2) easy_install *.egg

虽然Python的模块可以拷贝安装,但是一般情况下推荐制作一个安装包,即写一个setup.py文件来安装。

setup.py文件的使用:

% python setup.py build #编译

% python setup.py install #安装

% python setup.py sdist #制作分发包

% python setup.py bdist_wininst #制作windows下的分发包

% python setup.py bdist_rpm

setup.py文件的编写:

setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的

package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。

简单的例子:

setup.py文件:

from setuptools import setup, find_packages

setup(

name=”mytest”,

version=”0.10″,

description=”My test module”,

author=”Robin Hood”,

url=”h”,

license=”LGPL”,

packages= find_packages(),

scripts=[“scripts/test.py”],

)

mytest.py文件:

import sys

def get():

return sys.path

scripts/test.py文件:

import os

print os.environ.keys()

setup中的scripts表示将该文件放到 Python的Scripts目录下,可以直接用。OK,简单的安装成功,可以运行所列举的命令生成安装包,或者安装该python包。

本机测试成功(win32-python25)!

python制作模块与包(python 模块包)

Python中的模块和包的区别

1、模块(Module)就是包含代码的文件,不一定是Python代码,有四种代码类型的模块:

•使用Python写的程序( .py文件)

•C或C++扩展(已编译为共享库或DLL文件)

•包(包含多个模块)

•内建模块(使用C编写并已链接到Python解释器内)

使用模块可以提高代码的可维护性和重复使用,还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,所以编写自己的模块时,不必考虑名字会与其他模块冲突,但要注意尽量不要与内置函数名字冲突。

2、包(Package)就是包含模块文件的目录,目录名称就是包名称,目录中可以包含目录,子目录也是包,但包名称应该包含上一级目录的名称。Python引入了按目录来组织模块是为了避免模块名冲突,不同包中的模块名可以相同。

注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是包名。

python中的模块,库,包有什么区别

1.python模块是:

python模块:包含并且有组织的代码片段为模块。

表现形式为:写的代码保存为文件。这个文件就是一个模块。sample.py 其中文件名smaple为模块名字。

关系图:

2.python包是:

包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。

通俗一点:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。

常见问题:

引入某一特定路径下的模块

使用sys.path.append(yourmodulepath)

将一个路径加入到python系统路径下,避免每次通过代码指定路径

利用系统环境变量 export PYTHONPATH=$PYTHONPATH:yourmodulepath,

直接将这个路径链接到类似/Library/Python/2.7/site-packages目录下

好的建议:

经常使用if __name__ == ‘__main__’,保证写包既可以import又可以独立运行,用于test。

多次import不会多次执行模块,只会执行一次。可以使用reload来强制运行模块,但不提倡。

常见的包结构如下:

package_a

├── __init__.py

├── module_a1.py

└── module_a2.py

package_b

├── __init__.py

├── module_b1.py

└── module_b2.py

main.py

如果main.py想要引用packagea中的模块modulea1,可以使用:

from package_a import module_a1

import package_a.module_a1

如果packagea中的modulea1需要引用packageb,那么默认情况下,python是找不到packageb。我们可以使用sys.path.append(‘../’),可以在packagea中的__init__.py添加这句话,然后该包下得所有module都添加* import __init_即可。

关系图:

3.库(library)

库的概念是具有相关功能模块的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/23289.html

(0)
上一篇 2023-11-20
下一篇 2023-11-20

相关推荐

  • 用户画像系统架构——从零开始搭建实时用户画像(二)「终于解决」

    用户画像系统架构——从零开始搭建实时用户画像(二)「终于解决」​ ​ 在《 "什么的是用户画像" 》一文中,我们已经知道用户画像对于企业的巨大意义,当然也有着非常大实时难度。那么在用户画像的系统架构中都有哪些难度和重点要考虑的问题呢? 挑战

    2023-03-04
    144
  • Python中Numpy数据类型转换

    Python中Numpy数据类型转换在Python的数据处理领域中,Numpy是一个非常强大的数值计算库。在数据处理的过程中,经常会遇到数据类型不匹配的情况,此时就需要对数据类型进行转换。本文将从多个方面介绍Numpy中的数据类型转换。

    2024-08-16
    28
  • mysql 调优「建议收藏」

    mysql 调优「建议收藏」1、查看当前数据库进程 show processlist; 2、 查看数据库的最大连接数 show variables like '%max_connections%'; 3、 …

    2022-12-22
    155
  • 使用正则表达式提高文本处理效率

    使用正则表达式提高文本处理效率文本处理是我们在开发中非常常见的一个问题,不论是从文本中提取信息、替换特定字符或者格式化文本,都需要我们耗费大量时间和精力。但是,使用正则表达式可以帮助我们快速、准确地完成这些操作,提高我们的文本处理效率。本文从多个方面介绍正则表达式在文本处理中的使用方法和技巧,以期帮助读者更好地利用正则表达式提高自己的文本处理能力。

    2024-02-18
    86
  • redis如何解决key冲突_redis-cli连接redis数据库

    redis如何解决key冲突_redis-cli连接redis数据库如果现在的我们离开了互联网,生活会是什么样子? 互联网++++,已经深刻渗透到人们的生活中。 不知道大家有没有想过?每一个互联网+结合的背后都是海量的存储需求。你查看的每一个商品、组建的每一个战队、阅

    2023-06-07
    156
  • 排查Mysql突然变慢的一次过程[通俗易懂]

    排查Mysql突然变慢的一次过程[通俗易懂]排查Mysql突然变慢的一次过程 本文源地址:排查Mysql突然变慢的一次过程 上周客户说系统突然变得很慢,而且时不时的蹦出一个 404 和 500,弄得真的是很没面子,而恰巧出问题的时候正在深圳出…

    2023-04-01
    161
  • linux版solr-6.5.1配置

    linux版solr-6.5.1配置基础准备 将tomcat和solr压缩包解压到solr文件夹下 配置tomcat的端口号(conf下的server.xml) 启动tomcat 测试tomcat是否可以正常使用 开始配置solr 把…

    2022-12-15
    144
  • 巨杉Tech | SequoiaDB的同城双中心容灾实践「建议收藏」

    巨杉Tech | SequoiaDB的同城双中心容灾实践「建议收藏」1 需求背景 随着数据的大集中,银行纷纷建设了负责本行各个业务处理的生产数据中心,数据中心因其负责了全行的各个业务系统,所以其并发业务负荷能力和不间断运行是评价一个数据中心成熟与否的关键性指标。 近…

    2023-02-22
    134

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注