【发布时间】:2012-04-08 08:37:40
【问题描述】:
我对 python 中的 setuptools 是半新手。我最近在我的项目中添加了一个依赖项,但遇到了依赖项问题。问题来了:
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
from mypackage import VERSION
setup(
name='mypackage',
...
version=VERSION,
packages=['mypackage'],
install_requires=['six'])
问题是 mypackage 导入 six 并因此 setup.py 因from mypackage import VERSION 行而在全新安装时失败(尚未安装六个)。我已经通过破解一个虚拟模块导入(见下文)解决了这个问题,但我真的希望有一种更好的方法,不需要我在两个位置或一个单独的文件中维护版本号。
try:
import six
except ImportError:
# HACK so we can import the VERSION without needing six first
import sys
class HackObj(object):
def __call__(*args):
return HackObj()
def __getattr__(*args):
return HackObj()
sys.modules['six'] = HackObj()
sys.modules['six.moves'] = HackObj()
【问题讨论】:
标签: python setuptools