Python包是否必须在与项目源文件相同的环境中构建?
问题:无依赖环境下构建含NumPy依赖的Python包是否可靠?
背景与操作过程
- 我正在学习Python官方打包教程,使用conda环境(该问题同样适用于venv虚拟环境)。
- 教程示例是一个无依赖的简单包,仅包含一个实现数字加1的函数:
def add_one(number): return number + 1
- 我模仿该示例编写了一个新模块,使用NumPy为传入数组添加同形的全1数组:
import numpy as np def add_ones(array): return array + np.ones(array.shape)
- 我创建了名为
packaging的conda环境,安装了build和twine工具,分别使用Hatchling和Flit作为构建后端成功完成打包,并将包上传至TestPyPI。 - 后续通过
pip install从PyPI安装该包时出现两种情况:- 若安装到未安装NumPy的环境中,导入包会失败;
- 若安装到已安装NumPy的环境中,导入成功且函数可正常运行。
核心问题
这种在缺失依赖(NumPy)的环境中构建Python包的行为是否可靠?
内容的提问来源于stack exchange,提问作者Lee Hachadoorian
相关产品推荐
相关产品推荐

