如果您当前正在使用
setuptools
在
setup.py
python setup.py bdist_wheel
作为生成
.whl
文件,将以下行添加到
MANIFEST.in
已存在于项目根目录中的文件。
recursive-include myproject *
自然,替换
myproject
.pl
脚本(或任何其他文件)。
作为演示,如果
安装程序.py
大致是这样写的:
from setuptools import setup
from setuptools import find_packages
setup(
name='myproject',
version='0.0.0',
description='demo package',
long_description=open('README.md').read(),
classifiers=[
'Programming Language :: Python',
],
packages=find_packages(),
include_package_data=True,
zip_safe=False,
)
python setup.py bdist_轮
将显示如下输出:
...
adding 'myproject/__init__.py'
adding 'myproject/config.py'
adding 'myproject/logging.ini'
adding 'myproject/myperlscript.pl'
adding 'myproject/scripta.py'
adding 'myproject/utils.py'
adding 'myproject/version.py'
adding 'test/__init__.py'
...
文件打包在
.whl公司
:
$ unzip -t dist/myproject-0.0.0-py3-none-any.whl
Archive: dist/myproject-0.0.0-py3-none-any.whl
testing: myproject/__init__.py OK
testing: myproject/config.py OK
testing: myproject/logging.ini OK
testing: myproject/myperlscript.pl OK
...
安装结果
.whl公司
$ pip install -U myproject-0.0.0-py3-none-any.whl
Processing myproject-0.0.0-py3-none-any.whl
Installing collected packages: myproject
Successfully installed myproject-0.0.0
$ ls env/lib/python3.6/site-packages/myproject/
config.py logging.ini __pycache__ utils.py
__init__.py myperlscript.pl scripta.py version.py
还要注意,如果
清单.in
方法不需要,包括
package_data={'': ['*']},
论证
setup
call还应使其与最新版本的
设置工具
.
进一步增编:
包实际上有一个
MANIFEST.in
其中包括此特定语法,但仅限于要包含的文件的特定文件扩展名。这显然是一个受支持的选项,尽管有些指南/文档可能有其他建议。事实上,这是一个功能
provided by the core
distutils
module