从python wheel分发包中排除文件的正确方法是什么?
编辑MANIFEST.in
没有任何效果,我找不到有关此详细信息的信息。
答案 0 :(得分:2)
您为什么要这么做?当在目标计算机上首次运行项目时,无论如何都会生成__pycache__目录。 它只是Python的一种优化的字节码表示形式。
但是无论如何,您可以编写一个脚本来解压缩.whl文件并进行修改,然后重新打包。
答案 1 :(得分:0)
我从未遇到过这个问题。
以下是我setup.py
的摘录:
name='aenum',
version='2.0.2',
url='https://bitbucket.org/stoneleaf/aenum',
packages=['aenum'],
package_data={
'aenum' : [
'LICENSE',
'README',
'doc/aenum.rst',
'doc/aenum.pdf',
]
},
include_package_data=True,
license='BSD License',
description="Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants",
long_description=long_desc,
provides=['aenum'],
author='Ethan Furman',
author_email='...',
classifiers=[
...
],
和我的MANIFEST.in
:
exclude aenum/*
include setup.py
include README
include aenum/__init__.py
include aenum/test.py
include aenum/test_v3.py
include aenum/LICENSE
include aenum/CHANGES
include aenum/README
include aenum/doc/aenum.pdf
include aenum/doc/aenum.rst
我会说exclude aenum/*
对我来说是个窍门,所以exclude <package_name>/__pycache__
可能适合你。
答案 2 :(得分:-1)
find_packages
可以做到这一点,此外,您还可以指定要排除的目录,例如:
packages=find_packages(exclude=['docs', 'tests']),
但是应该自动排除编译的工件(pyc文件和__pycache__
目录)。