我是半新在Python setuptools的。我最近添加了一个依赖项到我的项目中,并遇到依赖问题。这里的问题: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()
此方法存在同样的问题:'pkg_resources.DistributionNotFound:six'。 – bboe 2012-03-24 07:11:25
事实上,你不应该需要六个,但“mypackage”! – luke14free 2012-03-24 11:58:28
是的,那是我在那里做的。 mypackage.__init__.py包含'import six'这一行,因此这个错误和原始问题。 – bboe 2012-03-24 15:25:41