一、在 PyCharm 上新建项目

1. 新建项目

项目所在的路径和名称自行定义,选择 “自定义环境” → “选择现有” 。

2. 新建目录和 Python 文件

右键文件夹,点击 “新建” ,选择要创建的文件或目录。

为了更好的演示如何将 Python 软件包封装成模块,我在文件夹下创建了一个叫 craft_pack 的目录和一个叫 test_external 的 Python 文件。

二、新建 Python 软件包并编写代码

1. 在目录下新建 Python 软件包

在 craft_pack 目录下新建一个 Python 软件包。右键目录,选择 “新建” → “Python 软件包” ,命名为 animals 。

可以发现,Python 软件包下自带了 _init_.py 文件。

2. 编写需要封装的功能代码和 init 文件

在 Python 软件包下面创建两个 Python 文件,分别命名为 cat 和 dog ,在该 py 文件中编写需要封装的功能代码。

编写的代码如下所示:

cat.py :

def hello_cat():
    print("Hello, cat!")

dog.py :

def hello_dog():
    print("Hello, dog!")

_init_.py :

from . import cat
from . import dog

配置 _init_.py 文件是为了控制自定义包,选择哪些模块是对外可见的。

3. 测试编写的代码包

在 craft_pack 目录下新建一个名为 test_internal 的 Python 文件,并输入以下代码进行运行。

import animals

animals.cat.hello_cat()
animals.dog.hello_dog()

可以看出,运行成功。那么如果把上述代码放入 test_external.py 文件里运行是否能成功呢?

显然是不行的,因此我们需要将 animals 软件包封装成模块并安装,这样在任何路径下都可以成功 import animals 。

下面将介绍将 Python 软件包封装成模块的方法。

三、制作发布的压缩包

1. 创建 setup.py 文件

在 craft_pack 目录下新建一个名为 setup 的 Python 文件(模块安装脚本文件),并输入以下代码,具体的内容请自行修改:

from distutils.core import setup

setup(name="animals", # 包名
version="1.0", # 版本
description="给小猫小狗打招呼的包", # 描述信息
long_description="完整的给小猫小狗打招呼模块", # 完整描述信息
author="Elowen", # 作者
author_email="xxx@gmail.com", # 作者邮箱
url="……", # 主页
py_modules=["animals.cat",
"animals.dog"])  # 包含的模块列表

注:Python 3.12 版本没有 ‘distutils’ 模块,因此第一行代码需要改为:from setuptools import setup

有关上述字典参数的详细信息,可以参阅官方网站。

2. 构建模块和生成发布压缩包

  • 点击终端,进入 setup.py 文件夹:
cd craft_pack

  • 构建模块(在 Ubuntu 或 Windows 下都可以,主要注意的是:Windows 下是 python ,Ubuntu 下是 python3):
python .\setup.py build

此时,生成了一个名为 build 的目录。

  • 生成发布压缩包
pip install wheel twine  # 如果已安装该包,则忽略这条命令
python.exe .\setup.py sdist bdist_wheel

此时,生成了一个名为 animals.egg-info 和 dist 的目录:

四、安装模块

1. 安装模块

  • 进入终端,输入以下命令,查看 dist 目录下有哪些内容:
cd dist
ls

  • 输入以下命令安装模块:
pip install animals-1.0-py3-none-any.whl --force-reinstall --user

拓展:解压文件的命令为 tar xf .\animals-1.0.tar.gz

此时,模块已经安装好,在任意路径的其他文件里就可以运行下列代码了:

import animals

animals.cat.hello_cat()
animals.dog.hello_dog()

例如,在 test_external.py 文件里运行,从下图可以看出运行成功。

2. 卸载模块

  • 在终端上先用 pip list 查看安装过的模块

  • 然后用 pip uninstall animals 删除 animals 模块

  • 最后再使用 pip list 查看模块是否已被删除。

此时再次运行 test_external.py 文件就失败了。

参考文章:
python程序,模块封装、发布并安装
Python将自己的代码封装成一个包供别人调用

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐