如何将非python编写的文件包含到包中?或者为了使其更加具体:假设我有以下包结构,我如何包含templates目录的所有文件?
- projectname
- __init__.py
- classfile.py
- templates
- file1.prototxt
- file2.caffemodel
我有以下setup.py
from distutils.core import setup
setup(
name = 'projectname',
packages = ['projectname'],
version = '0.1',
license='MIT',
description = 'my description',
author = 'FULL NAME',
author_email = 'example@gmail.com',
url = 'https://github.com/repo',
download_url = 'https://github.com/repo/.../v_01.tar.gz',
keywords = ['keywords'],
install_requires=[
'opencv-python',
'numpy'
],
classifiers=[
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3',
],
)
当我读到stackoverflow上的某个地方时,我尝试将以下内容添加到setup.py
文件中,但没有什么不同。
package_data = {
'templates': ['*'],
}
序言。单词";包装";严重过载。我用这个词的意思是";可进口包装";,即具有CCD_ 3的目录。
我看到你的代码有两个问题。首先,您使用distutils
,这是一个过时的包。它将从Python中删除。你早就应该换成setuptools
了。所以更换
from distutils.core import setup
带有
from setuptools import setup
第二个问题是
package_data = {
'templates': ['*'],
}
字典中的键是包,而不是目录名。您的templates
不是一个包(没有__init__.py
(,而是一个数据目录。所以包括的方法
package_data = {
'projectname': ['templates/*'],
}
此问题的潜在重复
include_package_data=True