我使用setuptools和一个需求文件来满足我的开源模块的依赖关系。
示例setup.py
:
from setuptools import setup, find_packages
from pip.req import parse_requirements
# parse_requirements() returns generator of
# pip.req.InstallRequirement objects
install_reqs = parse_requirements('requirements.txt',
session=False)
# reqs is a list of requirement
reqs = [str(ir.req) for ir in install_reqs]
setup(
name='python-symphony',
version='0.1.5',
description='python module for symphony chat',
author='Matt Joyce',
author_email='matt@joyce.nyc',
url='https://github.com/symphonyoss/python-symphony',
license='Apache 2.0',
classifiers=[
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.4',
],
keywords='symphony chat api python module',
# install dependencies from requirements.txt
install_requires=reqs,
packages=find_packages(),
# bin files / python standalone executable scripts
include_package_data=True,
zip_safe=False,
)
这已经有一段时间了。然而,最近我的构建一直在破碎。我相信setuptools中存在一个错误,可能与pygments有关。
有两个(迄今为止)确定的失败状态:
导致包被安装为二进制轮(尽管PyPI中不存在此类包)。
这导致在site-packages中安装软件包看似正确,但是没有一个子类可以从模块中调用。
我可以通过从站点包中删除包并运行来手动工作:
pip install --isolated --no-cache-dir python-symphony
但这导致pygments以某种方式搞砸了。 (我在尝试在bpython中调试模块时注意到了这一点。)
尝试从venv(用Bash脚本包装)运行这些东西往往会失败。
是否有人知道setuptools中可能导致此类破损的新/最近问题?
setuptools版本:setuptools-33.1.1.dist-info和更新
价:
github:https://github.com/symphonyoss/python-symphony
pypi:https://pypi.python.org/pypi/python-symphony/