【问题标题】:setup.py "nice to have" dependency modulessetup.py “很高兴拥有”依赖模块
【发布时间】:2016-10-04 18:26:06
【问题描述】:

我正在查看一个看起来有点像这个的 setup.py 文件:

#!/usr/bin/env python
from setuptools import setup, find_packages
import sys

if sys.argv[1] == 'test':
    import multiprocessing, logging
    from billiard import util

with open('requirements.txt') as f:
    required = f.read().splitlines()

if sys.version_info < (2, 7, 0):
    required.append('importlib')

setup(
    version='0.1',
    name='...',
    description='...',
    author='...',
    author_email='...',
    packages=find_packages(),
    package_data={},
    install_requires=required,
    include_package_data=True,
    tests_require=[
        'billiard',
        'nose==1.3'
    ],
    test_suite='nose.collector'
)

我正在尝试在 Windows 上安装该模块。该模块似乎是在另一个操作系统上开发的,因为它无法编译 requirements.txt 中的一个模块 (leveldb)。

查看代码,看起来它可以在没有leveldb 的情况下工作(尽管性能可能较差)。 是否有任何简单的方法可以更改leveldb 库的状态,使其安装失败不会阻止主模块的安装?

显然我可以从 requirements.txt 中删除依赖项,但我正在考虑如何编辑库以适应窗口。

【问题讨论】:

  • “谁”需要leveldb?是billiard吗? nose?如果是这样,请尝试更改其setup.py 中的代码。
  • @WilliamFernandes leveldb 在 requirements.txt 中列出
  • @WilliamFernandes 这是我正在查看的实际文件:github.com/ethereum/pyethapp/blob/develop/setup.py(由于 leveldb 在 Windows 上失败)

标签: python python-2.7 setuptools distutils leveldb


【解决方案1】:

您可以将可选依赖项声明为extras in your setup.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多