setup.py bdist_egg没有将文件放入egg中
我在使用Python打包的时候遇到了一些困惑的问题。
我有一个叫做setup.py的文件,内容是这样的:
import os
try:
from setuptools import setup
except ImportError:
from ez_setup import use_setuptools
use_setuptools()
from setuptools import setup
config = {
"name": "mypackage",
"version": "3.0.15",
"include_package_data": True,
"scripts": ["something.py"],
"entry_points": {},
"zip_safe": False,
}
setup(**config)
还有一个叫做MANIFEST.in
的文件,内容是:
recursive-include mypackage *.*
recursive-exclude mypackage *.pyc .DS_Store
当我运行python setup.py sdist
时,会生成一个tar.gz的压缩文件,里面包含了所有正确的文件。
但是当我运行python setup.py bdist_egg
,然后用Stuffit Expander解压这个egg文件时... 我能看到一个scripts/something.py
的文件,但却找不到任何mypackage
的源文件。
不过在解压后的egg文件中的SOURCES.txt
里,mypackage
的文件是有列出来的,所以看起来minifest文件是被解析了,只是没有把它们放进egg文件里。
我到底哪里搞错了或者理解错了呢?
1 个回答
3
你需要在 setuptools.setup()
的 package_data
项目 中列出要包含在你的二进制分发包中的文件:
config = {
"name": "mypackage",
"version": "3.0.15",
"include_package_data": True,
"scripts": ["something.py"],
"entry_points": {},
"package_data": {'': ['*.ext1', '*.ext2']},
"zip_safe": False,
}