Setuptools如何只打包一些模块和文件
Setuptools how to package just some modules and files
我打包了一个小 python 包。我是python打包的新手,我的目录结构如下(最多二级嵌套):
.
├── data
│ ├── images
│ ├── patches
│ └── train.csv
├── docker
│ ├── check_gpu.py
│ ├── Dockerfile.gcloud_base
│ ├── Dockerfile.gcloud_myproject
├── env.sh
├── gcloud_config_p100.yml
├── legacy
│ ├── __init__.py
│ ├── notebooks
│ └── mypackage
├── notebooks
│ ├── EDA.ipynb
│ ├── Inspect_patches.ipynb
├── README.md
├── requirements.txt
├── scripts
│ ├── create_patches_folds.py
│ └── create_patches.py
├── setup.py
├── mypackage
├── data
├── img
├── __init__.py
├── jupyter
├── keras_utils
├── models
├── train.py
└── util.py
我的setup.py:
import os
from setuptools import setup, find_packages
REQUIRED_PACKAGES = [
"h5py==2.9.0",
"numpy==1.16.4",
"opencv-python==4.1.0.25",
"pandas==0.24.2",
"keras==2.2.4",
"albumentations==0.3.1"
]
setup(
name='mypackage',
version='0.1',
install_requires=REQUIRED_PACKAGES,
packages=find_packages(include=["mypackage.*"]),
include_package_data=False
)
我要打包的代码只对应mypackage目录。这就是为什么我将 "mypackage.*" 传递给 find_packages 并使用 include_package_data=False。
如果我运行:
python setup.py sdist
所有项目结构都打包在生成的 tar.gz 文件中。
有人知道如何将模块打包到 mypackage/ 和顶级 README 文件中吗?我没有在 setuptools 文档中找到它。
首先要修复的是
packages=find_packages(include=["mypackage"]),
但您还需要了解 sdist
主要由文件 MANIFEST
or its template MANIFEST.in
而不是 setup.py
控制。您可以比较使用 sdist
和 bdist_wheel
或 bdist_egg
创建的内容; bdist_*
的内容由 setup.py
.
控制
所以我的建议是创建以下 MANIFEST.in
:
prune *
include README.txt
recursive-include mypackage *.py
我打包了一个小 python 包。我是python打包的新手,我的目录结构如下(最多二级嵌套):
.
├── data
│ ├── images
│ ├── patches
│ └── train.csv
├── docker
│ ├── check_gpu.py
│ ├── Dockerfile.gcloud_base
│ ├── Dockerfile.gcloud_myproject
├── env.sh
├── gcloud_config_p100.yml
├── legacy
│ ├── __init__.py
│ ├── notebooks
│ └── mypackage
├── notebooks
│ ├── EDA.ipynb
│ ├── Inspect_patches.ipynb
├── README.md
├── requirements.txt
├── scripts
│ ├── create_patches_folds.py
│ └── create_patches.py
├── setup.py
├── mypackage
├── data
├── img
├── __init__.py
├── jupyter
├── keras_utils
├── models
├── train.py
└── util.py
我的setup.py:
import os
from setuptools import setup, find_packages
REQUIRED_PACKAGES = [
"h5py==2.9.0",
"numpy==1.16.4",
"opencv-python==4.1.0.25",
"pandas==0.24.2",
"keras==2.2.4",
"albumentations==0.3.1"
]
setup(
name='mypackage',
version='0.1',
install_requires=REQUIRED_PACKAGES,
packages=find_packages(include=["mypackage.*"]),
include_package_data=False
)
我要打包的代码只对应mypackage目录。这就是为什么我将 "mypackage.*" 传递给 find_packages 并使用 include_package_data=False。
如果我运行:
python setup.py sdist
所有项目结构都打包在生成的 tar.gz 文件中。
有人知道如何将模块打包到 mypackage/ 和顶级 README 文件中吗?我没有在 setuptools 文档中找到它。
首先要修复的是
packages=find_packages(include=["mypackage"]),
但您还需要了解 sdist
主要由文件 MANIFEST
or its template MANIFEST.in
而不是 setup.py
控制。您可以比较使用 sdist
和 bdist_wheel
或 bdist_egg
创建的内容; bdist_*
的内容由 setup.py
.
所以我的建议是创建以下 MANIFEST.in
:
prune *
include README.txt
recursive-include mypackage *.py