Python 使用setuptools复制非.py文件
我的python项目通过setup.py安装。项目结构如下所示:Python 使用setuptools复制非.py文件,python,setuptools,setup.py,Python,Setuptools,Setup.py,我的python项目通过setup.py安装。项目结构如下所示: ├── Makefile ├── README.rst ├── circle.yml ├── docs │ ├── Makefile │ ├── conf.py │ ├── deps.txt │ ├── guide_installation.rst │ ├── guide_model.rst │ ├── guide_transliteration.rst │ ├── index.rst │ ├──
├── Makefile
├── README.rst
├── circle.yml
├── docs
│ ├── Makefile
│ ├── conf.py
│ ├── deps.txt
│ ├── guide_installation.rst
│ ├── guide_model.rst
│ ├── guide_transliteration.rst
│ ├── index.rst
│ ├── make.bat
│ └── module_trans.rst
├── indictrans
│ ├── __init__.py
│ ├── _decode
│ ├── _utils
│ ├── base.py
│ ├── iso_code_transformer.py
│ ├── libindic_
│ ├── mappings
│ ├── models
│ ├── polyglot_tokenizer
│ ├── script_transliterate.py
│ ├── test.py
│ ├── tests
│ ├── transliterator.py
│ ├── trunk
│ └── unicode_marks.py
├── requirements.txt
├── setup.cfg
├── setup.py
├── test-requirements.txt
└── tox.ini
其中子文件夹indicatrans/models如下所示
├── ben-eng
│ ├── classes.npy
│ ├── coef.npy
│ ├── intercept_final.npy
│ ├── intercept_init.npy
│ ├── intercept_trans.npy
│ └── sparse.vec
├── ben-guj
│ ├── classes.npy
│ ├── coef.npy
│ ├── intercept_final.npy
│ ├── intercept_init.npy
│ ├── intercept_trans.npy
│ └── sparse.vec
所以我有.npy和.vec文件要包含在项目中。
在my setup.py中,我试图通过include_package_data指令明确包含此文件夹模型,如:
setup(
setup_requires=['pbr'],
pbr=True,
packages=find_packages(),
include_package_data=True,
package_data={'models': ['*.npy','*.vec']},
ext_modules=cythonize(extensions)
)
在setup.cfg中,我有
但是运行python setup.py安装不会将models文件夹复制到安装文件夹/usr/local/lib/python2.7/dist-packages/indicatrans/
如果我打印文件,它就是我得到的find_包的输出
因此,我假设将包括indicatrans/模型,但事实并非如此
将include\u package\u data=True添加到您的设置函数中—您已经这样做了。
在与setup.py相同的目录中创建文件MANIFEST.in
MANIFEST.in可以如下所示:
include indictrans/models/ben-eng/*
include indictrans/models/ben-guj/*
执行此操作不需要setup.cfg
资料来源:
关于递归的编辑包括:
根据这一点,我们还应努力:
recursive-include indictrans/models *.npy *.vec
将include\u package\u data=True添加到您的设置函数中—您已经这样做了。
在与setup.py相同的目录中创建文件MANIFEST.in
MANIFEST.in可以如下所示:
include indictrans/models/ben-eng/*
include indictrans/models/ben-guj/*
执行此操作不需要setup.cfg
资料来源:
关于递归的编辑包括:
根据这一点,我们还应努力:
recursive-include indictrans/models *.npy *.vec
include\u package\u data=True需要
要包含模块indicatrans.models的数据,您必须提供全名:
package_data={'indictrans.models': ['*.npy','*.vec']},
include\u package\u data=True需要
要包含模块indicatrans.models的数据,您必须提供全名:
package_data={'indictrans.models': ['*.npy','*.vec']},
谢谢它将递归工作,因此包括indicatrans/models/*或可能包括indicatrans/models/*/**?谢谢,它使用递归复制和MANIFEST.in.Thank工作。它将递归工作,因此包括indicatrans/models/*或可能包括indicatrans/models/*/**?谢谢,它使用递归副本和清单工作。在?中,使用包数据需要包含包数据+清单。在?中,它们是两种独立的方法。在?中,使用包数据需要包含包数据+清单。在?中,它们是两种独立的解决方法。