首页 > 解决方案 > 子模块中包含的文件不会复制到 virtualenv 中

问题描述

我的 python 模块“suricate”有三个以 csv 格式存储的示例数据集。它们用于测试和示例。文件结构如下:
~/Projects/suricate/data/companydata在 companydata
我有文件:

 __init__.py //which is empty    
 left.csv    
 right.csv    
trainingdata.csv  

当我使用 pip 在虚拟环境上安装此模块时,我有以下文件结构:

~/anaconda3/envs/myenv/lib/python3.7/sites packages/suricate/data/companydata    

在 companydata 我有文件:
__init__.py
三个 csv 文件丢失

我能做些什么来确保 virtualenv 复制以及平面 csv 文件?

预期:Virtual Env 文件夹中的包具有与本地文件夹中相同的平面文件

Virtual Env 文件夹中的实际包包含所有 *.py 文件,但不包含 *.csv 文件

标签: pythonsetuptools

解决方案


您需要修改 setup.py 并在其中添加您需要的包和文件名

setup(...,
  packages=['mypkg'],
  package_dir={'mypkg': 'src/mypkg'},
  package_data={'mypkg': ['data/*.csv']},
  )`

像这样的东西。在包中给出 csv 文件的相对路径,添加所需的包


推荐阅读