我对Python打包相当陌生,我正在try 创建一个命令行工具,这样我就可以发送到客户端来与我在AWS中的服务交互.
我的目标是有一个命令行工具,将文件夹resources
中的文件上传到S3,稍后将被其他服务使用.
这是我第一次使用设置工具来做这件事,但我似乎在某些时候迷失了方向.
我的项目 struct 类似于:
ProjectRoot
├── MANIFEST.in
├── Pipfile
├── Pipfile.lock
├── dist
│ ├── myscript-0.0.1.whl
│ └── myscript-0.0.1.tar.gz
├── pyproject.toml
├── resources
│ ├── artifacts
│ │ ├── code1.jar
│ │ ├── code2.jar
│ │ ├── api.keys
│ │ ├── package1.tar.gz
│ │ ├── install-linux.sh
│ │ └── confs.yaml
│ ├── recipe.template.yaml
└── src
└── code
├── __init__.py
└── myscript.py
我try 让setupTools使用以下内容将文件添加到.tar包中,其中包含以下内容:
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "myscript"
version = "0.0.1"
dependencies = [
'Click',
'boto3',
'botocore',
]
[project.scripts]
myscript = "code.main:run"
[tool.setuptools]
include-package-data = true
[tool.setuptools.packages.find]
where = ["src","resources"]
include = ["code*"]
exclude = []
[tool.setuptools.package-data]
"resources.artifacts" = ["*"]
recipe = ["*.yaml"]
之后,我try 使用pip install dist/generated_file.whl
安装轮子生成的文件,但在安装过程中找不到resources/
文件夹.
附言:如果我同时需要WHL和TAR包,我也有点迷路了.
我try 使用相对路径来查找资源,但我发现它们没有安装在SitesPackages中.
我最近的一次try 是用from importlib_resources import files
,但它似乎也找不到资源.
我找不到资源文件夹文件.