如何使用 setup.cfg 设置 Python 包配置文件
How to setup Python package config file using setup.cfg
我正在打包一个 Python 具有以下目录结构的项目:
package-main (located on Desktop)
- my_package
- __init__.py
- datasets
- plot.py
- shapefiles
- __init__.py
- shapefile1
- shapefile1.shp
- shapefiel1.dbf
- (and 4 other file formats)
- shapefile2
- shapefile2.shp
- shapefiel2.dbf
- (and 4 other file formats)
- utils.py
- states.py
- my_package.egg-info
- LICENSE.txt
- setup.cfg
- README.md
- tests
- docs
- pyproject.toml
- dist
- my_package.egg-info
我 运行 遇到一个问题,当我将包 my_package
上传到 testPyPI,然后使用以下命令将包下载到我的本地计算机时:
pip install my_package
它没有下载所有文件。
当我创建一个 venv
来检查包文件,然后进入虚拟环境的包文件时,它只显示:
my_package
my_package-0.1.1.dist-info
当我打开 my_package
目录时,我看到的是以下结构:
my_package
- __init__py
- __pychache__
- plot.py
- shapefiles
- __init__.py
- __pychache__
- states.py
- utils.py
我已经确定 这一定与我设置 setup.cfg
文件的方式有关(也许我没有告诉它下载所有的包文件?
我当前的 setup.cfg
文件如下所示:
[options]
install_requires =
numpy
geopandas
matplotlib
python_requires = >=3.6
packages = find:
我已经阅读了这里的 documentation for setuptools,但这并没有完全解决我的问题。我还需要告诉程序包下载形状文件。
我看过多个关于如何使用 setup.py
执行此操作的示例,但是由于 Python packaging tutorial 上有人建议我不使用此方法,因为它是动态的还是静态的,所以我没有能够在网上找到有关如何执行此操作的任何示例。
任何指向资源或示例的链接将不胜感激。
问题:如何更改 setup.cfg 文件以确保它下载包正常运行所需的所有文件?
编辑:
MANIFEST.in
文件如下所示:
include my_package/shapefiles/shapefile1/*.shp
include my_package/shapefiles/shapefile1/*.dbf
include my_package/shapefiles/shapefile2/*.shp
include my_package/shapefiles/shapefile2/*.dbf
根据 setuptools
"Configuring setup() using setup.cfg files" 上的文档,您可以尝试以下操作:
[options]
...
include_package_data = True
...
[options.package_data]
* = *.dbf, *.shp, *.ext1, *.ext2, *.ext3, *.ext4
我正在打包一个 Python 具有以下目录结构的项目:
package-main (located on Desktop)
- my_package
- __init__.py
- datasets
- plot.py
- shapefiles
- __init__.py
- shapefile1
- shapefile1.shp
- shapefiel1.dbf
- (and 4 other file formats)
- shapefile2
- shapefile2.shp
- shapefiel2.dbf
- (and 4 other file formats)
- utils.py
- states.py
- my_package.egg-info
- LICENSE.txt
- setup.cfg
- README.md
- tests
- docs
- pyproject.toml
- dist
- my_package.egg-info
我 运行 遇到一个问题,当我将包 my_package
上传到 testPyPI,然后使用以下命令将包下载到我的本地计算机时:
pip install my_package
它没有下载所有文件。
当我创建一个 venv
来检查包文件,然后进入虚拟环境的包文件时,它只显示:
my_package
my_package-0.1.1.dist-info
当我打开 my_package
目录时,我看到的是以下结构:
my_package
- __init__py
- __pychache__
- plot.py
- shapefiles
- __init__.py
- __pychache__
- states.py
- utils.py
我已经确定 这一定与我设置 setup.cfg
文件的方式有关(也许我没有告诉它下载所有的包文件?
我当前的 setup.cfg
文件如下所示:
[options]
install_requires =
numpy
geopandas
matplotlib
python_requires = >=3.6
packages = find:
我已经阅读了这里的 documentation for setuptools,但这并没有完全解决我的问题。我还需要告诉程序包下载形状文件。
我看过多个关于如何使用 setup.py
执行此操作的示例,但是由于 Python packaging tutorial 上有人建议我不使用此方法,因为它是动态的还是静态的,所以我没有能够在网上找到有关如何执行此操作的任何示例。
任何指向资源或示例的链接将不胜感激。
问题:如何更改 setup.cfg 文件以确保它下载包正常运行所需的所有文件?
编辑:
MANIFEST.in
文件如下所示:
include my_package/shapefiles/shapefile1/*.shp
include my_package/shapefiles/shapefile1/*.dbf
include my_package/shapefiles/shapefile2/*.shp
include my_package/shapefiles/shapefile2/*.dbf
根据 setuptools
"Configuring setup() using setup.cfg files" 上的文档,您可以尝试以下操作:
[options]
...
include_package_data = True
...
[options.package_data]
* = *.dbf, *.shp, *.ext1, *.ext2, *.ext3, *.ext4