一个标准的setup.py和requirements.txt

一套好的requirements.txtsetup.py要满足:

  1. 自动安装服务依赖,包括公有依赖(pypi上面)和私有依赖(私有tar包、git仓库等);
  2. python setup.py installpip install两种方式都能正常安装;

setup.py

import os

from setuptools import setup, find_packages


def _process_requirements():
    packages = open('requirements.txt').read().strip().split('\n')
    requires = []
    for pkg in packages:
        if pkg.startswith('git+ssh'):
            return_code = os.system('pip install {}'.format(pkg))
            assert return_code == 0, 'error, status_code is: {}, exit!'.format(return_code)
        else:
            requires.append(pkg)
    return requires


setup(
    name='foo',
    version='1.0.0',
    author='brown',
    description="just a test",
    packages=find_packages(),
    install_requires=_process_requirements()
)

requirements.txt

redis>=2.10.6
git+ssh://git@github.com/<user>/<repo_name>@<branch>

注意

  1. 这里我们在setup.py里面自己处理了私有git仓的安装。其实setup函数提供了dependency_links参数供我们实现此功能,但实测下来还是比较麻烦,我遇到的情况是:python setup.py install能正常安装,但pip安装就一直失败。
  2. pip安装时,setup.py里面的控制台输出,正常情况都是不显示的,因为pip安装使用了子进程,并默认禁止了控制台输出,你可以pip -v把其显示出来。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值