1. 创建你的包
1.1 包结构
首先,确定你的包的基本结构。一个简单的包可以是这样的:
my_package/__init__.pymodule_a.pymodule_b.py
my_package/
是你的包的根目录。__init__.py
是一个特殊文件,表明这是一个包。可以留空,但通常可以在其中放置包的初始代码。module_a.py
和module_b.py
是你定义的模块。
1.2 编写代码
创建上述文件结构后,你可以在各个模块中添加你的代码。
my_package/__init__.py
示例:
# my_package/__init__.py
print("my_package is being imported")
my_package/module_a.py
示例:
# my_package/module_a.pydef function_a():return "Hello from module A"
my_package/module_b.py
示例:
# my_package/module_b.pydef function_b():return "Hello from module B"
2. 安装你的包
为了在其他工程中使用你的新包,你需要将其安装到你的 Python 环境中。可以通过以下几种方式进行安装:
2.1 在本地开发环境中使用
如果你只是想在一个开发环境中使用包,可以将包根目录添加到 PYTHONPATH
中。这种方式适合快速测试。
- 打开终端。
- 导航到你的包所在的目录(即
my_package
的父目录)。 - 设置
PYTHONPATH
环境变量:
export PYTHONPATH=$(pwd):$PYTHONPATH
这样在当前终端会话中,你就可以在 Python 中直接导入你的包。
2.2 使用 setup.py
安装
如果你希望在多个项目中长期使用这个包,建议你将其封装为一个可安装的包。
创建 setup.py
在 my_package
的父目录下创建一个名为 setup.py
的文件,内容如下:
from setuptools import setup, find_packagessetup(name='my_package',version='0.1',packages=find_packages(),description='A simple example package',author='Your Name',author_email='your.email@example.com',url='https://your.package.url',
)
安装包
然后在 setup.py
所在的目录运行以下命令安装你的包(注意要在终端中执行):
pip install .
这将安装你的包到 Python 环境中。
3. 在其他工程中调用
3.1 在其他项目中导入
在其他项目中你可以直接导入你的包和模块。在你的其他项目中制作一个 Python 脚本:
other_project/main.py
示例:
# other_project/main.pyfrom my_package.module_a import function_a
from my_package.module_b import function_bprint(function_a()) # 输出: Hello from module A
print(function_b()) # 输出: Hello from module B
确保 other_project
的环境中已安装 my_package
,然后在终端运行该脚本:
python main.py
4.如果我在虚拟环境中使用了pip来安装我自定义的一个包,那么这个包是安装在虚拟环境还是全局环境?
如果你在虚拟环境中使用 pip
来安装你自定义的包,那么这个包将会被安装在虚拟环境中,而不会影响全局环境。这是虚拟环境的主要功能之一,它允许你隔离项目的依赖,从而避免与全局环境中的其他包发生冲突。