一、制作发布包
step1:新建发布模块的文件夹
为了便于操作单独建立一个文件夹,我这里命名为【发布包演示】,(尽量不用出现中文,别学我)
step2:创建包
包的命名和变量名一致,小写字母+_,eg:zqx_test
(我命名为testPackage,别学我!!!)
step2.1:定义模块
为便于演示,定义如下两模块:
send_message.py
def send():
print('I am send!!!')
receive_message.py
def receive():
print('I am receive!!!')
return 'receive'
step2.2:将模块导入 __init__ 中
__init__.py # !!! 要在外界使用包中的模块,需要在 __init__.py 中指定对外界提供的模块列表
from . import send_message
from . import receive_message
step3:在需要发布的包的同级目录下创建构建模块(如setup.py)
在【发布包演示】文件夹下,新建一个setup.py文件(名字可以自己定义,但一定要在和发布包的同级文件中)
setup.py
from distutils.core import setup
setup(name="testPackage", # 包名
version="1.0", # 版本
description="zqx's 发送和接收消息模块", # 描述信息
long_description="完整的发送和接收消息模块", # 完整描述信息
author="zqx", # 作者
author_email=" zqx1473@163.com", # 作者邮箱
url="https://blog.youkuaiyun.com/zqx1473", # 主页
py_modules=["testPackage.send_message",
"testPackage.receive_message"])
目录结构大致如下
step4:终端构建模块
进入setup.py所在文件的路径,运行(Linux下默认使用python3):
# windows
> python setup.py build
#linux默认
$ python3 setup.py build
( 我这是在Windows下操作的)
构建完成会多出如下(实际就是建了一个build、lib文件夹然后将testPackage文件夹复制了一份进去)
step5:终端生成发布压缩包
还是在setup.py所在文件的路径下,运行(>表示在windows下执行,$表示在Linux下执行):
# windows
> python setup.py sdist
#linux默认
$ python3 setup.py sdist
打包之后结构如下(多了一个dist文件夹和testPackage-1.0.tar.gz压缩包文件,以及一个MANIFEST的说明文档):
二、安装模块(linux下)
在我的虚拟机中创建了一个文件夹用于演示安装
通过xftp将打包好的压缩文件传到虚拟机中(直接拖动)
step1:在Linux中解压包:
以下是在xshell中操作:
$ tar xf testPackage-1.0.tar.gz
step2:安装包(记得要先cd进入解压文件夹)
解压好后利用setup.py文件进行安装(Linux下默认使用python3)
$ cd testPackage-1.0/
$ sudo python3 setup.py install
!!!错误1:
如出现下图情况是因为ubuntu18.04 默认没有安装 pip ,需要安装 python3-pip:
$ sudo apt-get install python3-pip
step3:查看
进入写入的文件可以看到testPackage已经存在
$ cd /usr/local/lib/python3.6/dist-packages/
step4:试用
随便换到一个其他文件下,打开python,都可以导入testPackage,并使用
三、卸载模块
$ cd /usr/local/lib/python3.6/dist-packages/
$ sudo rm -r testPackage*
四、pip安装第三方模块
也就是错误1那里,需要安装pip
$ sudo apt-get install python3-pip
查看pip是否安装成功,以下两个命令都行
$ pip3 -V
$ pip3 --version
Ubuntu 下修改pip安装源
详情请看:Ubuntu换pip国内源_ubuntu 指定pip install 的源-优快云博客
安装包和卸载包的命令如下(以安装pygame为例;注意哦!!!安装到3.0的环境和2.0的不一样哈):
# 将模块安装到 Python 2.x 环境
# 安装
$ sudo pip install pygame
# 卸载
$ sudo pip uninstall pygame
# 将模块安装到 Python 3.x 环境
# 安装
$ sudo pip3 install pygame
# 卸载
$ sudo pip3 uninstall pygame
!!!问题2:
安装过程出现了个小问题,出现了一个关于X11的弹窗,解决方式详见:Xshell弹窗:需要Xmanager软件来处理X11转发请求
在/usr/local/lib/python3.6/dist-packages文件夹下就会出现关于pygame的内容
!!!错误3:
出现如下 pip:找不到命令是因为你用的pip不是pip3
修改pip默认为pip3,详情请看:Ubuntu中python 改为默认使用python3,pip改为默认使用pip3-优快云博客
!!! 警告4:
出现如下情况:说明你的setuptools工具版本过低,需要更新
pip3 install --upgrade pip setuptools
更新后就可以进行安装了