在python2.7中调用六个解析

时间:2016-04-07 11:55:08

标签: python python-2.7

似乎模块六isn't supported for Python2.7,所以如果我调用一个模块导入它就像这样:

describe BazWrapper do
  describe '.get_api_response' do
    let(params) {
      {
        approval_code: 'x'
      }
    }

    before do
      stub_request(:any, 'www.example.com').
        to_return(:body => 'blah', :status => 200)
    end

    it 'requests the data' do
      BazWrapper.get_api_response(params)

      expect(WebMock).to have_requested(:post, 'www.example.com').
        with(query: { approval_code: 'x' })
    end
  end
end

然后我得到:

from six.moves.urllib import parse

有没有人知道是否有一个Python2.7模块可以替换这个模块吗?

编辑:

这是回溯(它是一个使用foursquare模块的API刮刀,问题是调用解析...):

NameError: global name 'parse' is not defined

1 个答案:

答案 0 :(得分:0)

您的代码中几乎肯定会有以下内容:

def f():
   params = parse.urlencode("...")
f()
from six.moves.urllib import parse

在导入解析之前,您已在某处调用了一个函数。

查看source,行params=parse.urlencode(params))位于第155行,但回溯显示第157行,因此您要么修改了源代码或者你使用的版本是> 11个月大,因为这是foursquare/__init__.py最后一次更新,很可能你已经修改了一些东西。

您可能需要考虑实际安装软件包,而不是运行同一文件夹中的代码:

pip2 install foursquare

然后从不同的目录运行您的脚本,这将为您的问题提供明确的答案。