python模块是一个可共享的程序_python中共享模块

当编写了一个python模块,如果想共享这个模块,需要为其准备一个发布。“发布”就是指一个文件的集合,这些文件联合在一起允许你构建、打包、发布你的模块。当这个发布存在了,就可以安装到你本地副本中,还可以上传到PyPI与世界共享。

1、首先创建一个文件夹

将模块代码放到文件夹下

mkdir example

cp example_model.py example

2、在文件下编写文件setup.py,用于存放元数据信息

from distutils.core import setup

setup(

name = 'example',

version = '1.0.0',

py_modules = ['example'],

author = 'colin',

author_email = 'example@example.com',

url = 'www.colin.com',

description = 'this is example modle'

)

py_modules是将模块的元数据与setup函数参数关联

下面的四条可以根据自身修改

3、构建发布

在创建的文件下输入 python3 setup.py sdist

4、将发布文件安装到本地python副本中

输入sudo python3 setup.py install

到现在已经发布打包完成,来看下如今的文件下内容:

bulid :下面有lib文件夹,里面放着模块源代码

dist :存放的是发发布包 scan_list-1.0.0.tar.gz

MANIFEST:包含发布文件的列表

scan_list.py:是之间方进来的模块源代码包

set_up.py:是自己编写的元数据信息

到这里你就可以使用这个模块了,通过import语句导入,然后使用函数

发布到PyPI,PyPI是提供第三方模块的python网站

1、首先在http://pypi.python.org进行用户注册

不用填写PGP Key Id(如果你没有的话,这里提醒一下,密码最少16位)。注册成功后去邮箱进行验证

2、向PyPI上传代码

需要通过命令行窗口进行注册(使命令行上传工具知道你的PyPI用户名和密码,只需要做一次),通过命令行窗口上传

输入:python3 setup.py register

命令行上传:

输入:python3  setup.py sdist upload

现在你的代码块已经是PyPI的一部分了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python提供了多种方式实现共享内存通讯,其比较常用的有以下几种: 1. multiprocessing模块共享内存 multiprocessing模块提供了一些类似于Unix共享内存的机制,如Value和Array。Value和Array都是用来在多进程间共享数据的对象,Value是用于表示单一的值,而Array则是用于表示一组值(如数组)。这两种对象的使用方法类似,可以通过get()和set()方法来获取和设置值。 示例代码: ``` from multiprocessing import Process, Value, Array def f(n, a): n.value = 3.1415926 for i in range(len(a)): a[i] *= -1 if __name__ == '__main__': num = Value('d', 0.0) arr = Array('i', range(10)) p = Process(target=f, args=(num, arr)) p.start() p.join() print(num.value) print(arr[:]) ``` 2. mmap模块 mmap模块Python一个标准库,它提供了一种将文件映射到内存的方式,可以实现多进程之间的共享内存。通过mmap映射文件,多个进程就可以同时访问同一块内存。 示例代码: ``` import mmap import os with open("test.txt", "rb+") as f: mm = mmap.mmap(f.fileno(), 0) pid = os.fork() if pid == 0: # 子进程 mm[0] = 'c' mm.flush() mm.close() else: # 父进程 mm[0] = 'p' mm.flush() os.waitpid(pid, 0) print(mm[:]) mm.close() ``` 3. ctypes模块 ctypes模块Python一个标准库,它提供了一种将C语言函数库的函数映射到Python的方式,可以实现多进程之间的共享内存。ctypes模块提供了一些共享内存相关的函数,例如mmap、shmget等。 示例代码: ``` import ctypes libc = ctypes.CDLL(None) shmget = libc.shmget shmat = libc.shmat shmdt = libc.shmdt key = 1234 size = 1024 # 创建共享内存 shmid = shmget(key, size, 0o666 | 0o2000) # 将共享内存映射到进程的地址空间 addr = shmat(shmid, 0, 0) # 写入数据 ctypes.memset(addr, ord('A'), size) # 解除映射 shmdt(addr) # 重新映射 addr = shmat(shmid, 0, 0) # 读取数据 print(ctypes.string_at(addr, size)) # 解除映射 shmdt(addr) ``` 以上是几种常用的Python共享内存通讯方式,使用时需要根据实际情况选择合适的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值