首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tipfy nosetest ImportError:没有名为fancy_urllib的模块

tipfy nosetest ImportError:没有名为fancy_urllib的模块
EN

Stack Overflow用户
提问于 2011-03-06 20:53:11
回答 6查看 3.3K关注 0票数 4

我正在尝试使用tipfy和google app引擎运行nosetest,但是我一直收到一个导入错误:

在google_appengine目录中,我执行以下命令(目录包含dev_appserver.py):

代码语言:javascript
复制
nosetests /Users/me/Documents/python/project/ --with-gae --without-sandbox

但我得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/usr/local/bin/nosetests", line 8, in <module>
    load_entry_point('nose==0.11.4', 'console_scripts', 'nosetests')()
  File "/Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg/nose/core.py", line 117, in __init__
    **extra_args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py", line 816, in __init__
    self.parseArgs(argv)
  File "/Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg/nose/core.py", line 134, in parseArgs
    self.config.configure(argv, doc=self.usage())
  File "/Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg/nose/config.py", line 323, in configure
    self.plugins.configure(options, self)
  File "/Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg/nose/plugins/manager.py", line 270, in configure
    cfg(options, config)
  File "/Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg/nose/plugins/manager.py", line 93, in __call__
    return self.call(*arg, **kw)
  File "/Library/Python/2.6/site-packages/nose-0.11.4-py2.6.egg/nose/plugins/manager.py", line 161, in simple
    result = meth(*arg, **kw)
  File "build/bdist.macosx-10.6-universal/egg/nosegae.py", line 84, in configure
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 51, in <module>
    import fancy_urllib
ImportError: No module named fancy_urllib

我可以加载tipfy hello_world项目,没有任何错误,并且我在同一台机器上有其他应用程序引擎项目,都运行得很好。

我使用的是mac os x 10.6.6,并且我同时安装了nose和nosegae。我还尝试从/Users/me/Documents/python/project/文件夹中执行相同的命令,但得到了相同的结果

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-04-01 00:19:37

我也遇到了同样的问题,下面是我的快速解决方案:

修改这个文件"/usr/local/bin/dev_appserver.py“

代码语言:javascript
复制
......
if version_tuple == (2, 4):
  sys.stderr.write('Warning: Python 2.4 is not supported; this program may '
                   'break. Please use version 2.5 or greater.\n')
#Start Change
#DIR_PATH = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
DIR_PATH = "/usr/local/google_appengine"
#End Change

SCRIPT_DIR = os.path.join(DIR_PATH, 'google', 'appengine', 'tools')
......

到目前为止对我来说还不错。

票数 3
EN

Stack Overflow用户

发布于 2011-03-13 05:52:15

尝试使用以下选项运行它:

代码语言:javascript
复制
--gae-lib-root=/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine

请显示Python sys.path。

票数 1
EN

Stack Overflow用户

发布于 2011-03-16 01:31:38

我在使用Nose / NoseGAE时也遇到了这个问题。我没有机会尝试各种--gae-lib-root值,但我最终幸运地修补了dev_appserver.py (位于我的MacOS安装的/usr/local/google_appengine/google/appengine/tools/中),如下所示:

代码语言:javascript
复制
...
try:
  import distutils.util
except ImportError:
  pass

# ----- start of new code -----
import os, sys

DIR_PATH = '/usr/local/google_appengine'
EXTRA_PATHS = [
    DIR_PATH,
    os.path.join(DIR_PATH, 'lib', 'antlr3'),
    os.path.join(DIR_PATH, 'lib', 'django_0_96'),
    os.path.join(DIR_PATH, 'lib', 'fancy_urllib'),
    os.path.join(DIR_PATH, 'lib', 'ipaddr'),
    os.path.join(DIR_PATH, 'lib', 'webob'),
    os.path.join(DIR_PATH, 'lib', 'yaml', 'lib'),
    os.path.join(DIR_PATH, 'lib', 'simplejson'),
    os.path.join(DIR_PATH, 'lib', 'graphy'),
]
sys.path = EXTRA_PATHS + sys.path
# ----- end of new code -----

import dummy_thread
...

这与GAE issue ticket #3597中提到的appcfg.py (fix_sys_paths())中的一些代码非常相似。我怀疑问题在于Nose如何设置执行路径,尽管我目前无法证明这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5210584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档