我们为一个包含了python和perl脚本集合的软件包创建了一个pip wheel文件。由于python打包只会将python文件添加到wheel文件中,所以最好也打包perl文件。
这是我的项目结构
.
|____myproject
| |____logging.ini
| |____utils.py
| |____myperlscript.pl
| |____config.py
| |____version.py
| |____scripta.py
| |____scriptb.py
| |____scriptc.py
| |______init__.py
|____test
| |____test_scripts.py
|______init__.py
|____MANIFEST.in
|____README.md
|____setup.py
|____.gitignore
|____Jenkinsfile
答案 0 :(得分:0)
如果您当前在项目{{1}中使用setuptools
,并使用setup.py
作为生成python setup.py bdist_wheel
文件的方法,请添加以下行到项目根目录中已经存在的.whl
文件中。
MANIFEST.in
自然地,将recursive-include myproject *
替换为实际的顶级目录,该目录将包含目标myproject
脚本(或任何其他文件)。
作为演示,如果您的.pl
的编写大致如下:
setup.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_wheel
文件打包在...
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
方法,则为MANIFEST.in
调用添加package_data={'': ['*']},
参数也应该使其与setup
的最新版本一起使用。
更多附录:setuptools
软件包实际上包含一个MANIFEST.in
,其中包含此特定语法,尽管限于它们要包含的文件的特定文件名扩展名。尽管某些指南/文档可能会另外建议,但这显然是受支持的选项。实际上,默认情况下,这是Python附带的功能provided by the core distutils
module。相关问题: