我是半新在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