我正在为WSGI框架开发一个新的Python身份验证库,并希望使用python-openid以及其他一些第三方库。我看到两个选项:
问题是:
在Python开源项目中合并第三方库的首选传统方式是什么?
答案 0 :(得分:6)
优先使用setuptools / distribute并为您的项目定义setup.py,通过PyPi下载第三方库。
这是我的一个项目的摘录。请注意使用setup / install / test / extras-require关键字参数,这是您正在寻找的
import distribute_setup
distribute_setup.use_setuptools()
import os
from setuptools import setup, find_packages
# Utility function to read the README file.
# Used for the long_description. It's nice, because now 1) we have a top level
# README file and 2) it's easier to type in the README file than to put a raw
# string in below ...
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
setup(
name='buildboticon',
version='0.3.2',
author='Marcus Lindblom',
author_email='macke@yar.nu',
description=('A buildbot monitoring utility'),
license='GPL 3.0',
keywords='buildbot systemtray pyqt',
url='http://bitbucket.org/marcusl/buildboticon',
download_url='http://packages.python.org/buildboticon',
package_dir={'':'src'},
packages=find_packages('src', exclude=['*.tests']),
long_description=read('README'),
entry_points={
'setuptools.installation': [
'eggsecutable = bbicon:main',
],
'gui_scripts': [
'buildboticon = bbicon:main',
]
},
setup_requires=[
'setuptools_hg',
],
tests_require=[
'unittest2 >= 0.5',
'mock >= 0.7.0b4',
],
install_requires=[
'pyyaml >= 0.3',
# 'pyqt >= 4.7' # PyQt doesn't have anything useful on PyPi :(
],
extras_require={
'speech': ['pyspeech >= 1.0'],
# 'phidgets': ['PhidgetsPython >= 2.1.7'],
},
此处的完整档案:https://bitbucket.org/marcusl/buildboticon/src/5232de5ead73/python/setup.py