Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行python脚本时使用比1.4.1更高版本的six_Python_Macos_Google Api_Google Api Python Client - Fatal编程技术网

运行python脚本时使用比1.4.1更高版本的six

运行python脚本时使用比1.4.1更高版本的six,python,macos,google-api,google-api-python-client,Python,Macos,Google Api,Google Api Python Client,尝试使用google api客户端时,我遇到了许多其他人都遇到的错误: AttributeError:'Module\u six\u moves\u urllib\u parse'对象没有属性“urlencode” 我尝试了StackOverflow、GitHub和其他地方的所有解决方案,包括: 1) 从,更改实际代码中的路径: import sys sys.path.insert(1, '/Library/Python/2.7/site-packages') 2) 从,更改.bashrc和.

尝试使用google api客户端时,我遇到了许多其他人都遇到的错误:

AttributeError:'Module\u six\u moves\u urllib\u parse'对象没有属性“urlencode”

我尝试了StackOverflow、GitHub和其他地方的所有解决方案,包括:

1) 从,更改实际代码中的路径:

import sys
sys.path.insert(1, '/Library/Python/2.7/site-packages')
2) 从,更改.bashrc和.bash_概要文件中的python路径:

pip show six | grep "Location:" | cut -d " " -f2
export PYTHONPATH=$PYTHONPATH:<pip_install_path>
source ~/.bashrc
pip显示六个“grep”位置:“| cut-d”“-f2
导出PYTHONPATH=$PYTHONPATH:
source~/.bashrc
3) 从开始,将我的谷歌api客户端降级到1.3.2(或者至少尝试)

我是编程新手,所以这可能是一个基本问题,但我花了几天时间试图排除故障,但都没有用。看起来无论我做什么,旧的1.4版本的six都在使用。如果您能提供任何帮助,我们将不胜感激

编辑:完全回溯:

Traceback (most recent call last):
  File "/Users/zachgoldfine/PycharmProjects/FirstTry/GetAroundRentalSpreadsheetRead.py",     line 71, in <module>
    spreadsheetId=spreadsheetId, range=rangeName1).execute()
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 129, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/googleapiclient/http.py", line 836, in execute
    method=str(self.method), body=self.body, headers=self.headers)
  File "/Library/Python/2.7/site-packages/googleapiclient/http.py", line 162, in _retry_request
    resp, content = http.request(uri, method, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/transport.py", line 186, in new_request
    credentials._refresh(orig_request_method)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 761, in _refresh
    self._do_refresh_request(http)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 774, in _do_refresh_request
    body = self._generate_refresh_request_body()
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 716, in _generate_refresh_request_body
    body = urllib.parse.urlencode({
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute     'urlencode'
回溯(最近一次呼叫最后一次):
文件“/Users/zachgoldfine/PycharmProjects/FirstTry/getaroundrentalspreadsheetrade.py”,第71行,在
spreadsheetId=spreadsheetId,range=rangeName1.execute()
文件“/Library/Python/2.7/site packages/oauth2client/util.py”,第129行,位置包装中
已包装退货(*args,**kwargs)
文件“/Library/Python/2.7/site packages/googleapiclient/http.py”,第836行,在execute中
method=str(self.method),body=self.body,headers=self.headers)
文件“/Library/Python/2.7/site packages/googleapiclient/http.py”,第162行,在请求中
resp,content=http.request(uri,方法,*args,**kwargs)
文件“/Library/Python/2.7/site packages/oauth2client/transport.py”,第186行,在新请求中
凭证。\u刷新(原始请求\u方法)
文件“/Library/Python/2.7/site packages/oauth2client/client.py”,第761行,在刷新中
self.\u do\u refresh\u请求(http)
文件“/Library/Python/2.7/site packages/oauth2client/client.py”,第774行,在“刷新”请求中
body=self.\u生成\u刷新\u请求\u body()
文件“/Library/Python/2.7/site packages/oauth2client/client.py”,第716行,在“生成\刷新\请求\正文”中
body=urllib.parse.urlencode({
AttributeError:'Module_six_moves_urllib_parse'对象没有属性'urlencode'

假设six版本确实存在问题,下面是安装six并能够使用新安装版本的一种方法

重要注意事项:这将仅从您的用户帐户起作用;不从任何其他帐户起作用。
安全方面:这不会改变系统Python环境,也就是说,可能使用Python的系统脚本将继续使用较旧的pip版本

首先,颠倒上面的三个步骤。特别是,手动更改脚本中的
sys.path
应该很少有必要

然后,使用
--user
选项,该选项安装本地版本,Python(由该用户运行时)将首先自动获取该版本。 要确保您使用的Python可执行文件对应于pip模块和(稍后)已安装的six模块,请使用以下命令:

python -m pip install six --user
如果您碰巧没有使用系统python(例如,z/usr/local/bin/python
,或
python3
等),则
python
可能是另一种形式 不需要
sudo`或类似产品

如果pip抱怨需求已经是最新的(不应该,否则您就不会遇到上述问题),请尝试:

完成后,您可以检查
$HOME/Library/Python/x.y/lib/Python/site packages
以查看是否在那里看到了六个版本的正确版本。这是您的本地用户库目录,而不是系统目录。
x.y
可能是2.7,但请检查
Python
是否确实是该版本


谷歌api客户端也可能存在问题。我不知道它是否安装了pip,但除此之外,您可以尝试类似于六个:

python -m pip install <google-api-client> --user (--upgrade --force)
python-mpip安装--user(--upgrade--force)

假设six版本确实存在问题,下面是安装six并能够使用新安装版本的一种方法

重要注意事项:这将仅从您的用户帐户起作用;不从任何其他帐户起作用。
安全方面:这不会改变系统Python环境,也就是说,可能使用Python的系统脚本将继续使用较旧的pip版本

首先,颠倒上面的三个步骤。特别是,手动更改脚本中的
sys.path
应该很少有必要

然后,使用
--user
选项,该选项安装本地版本,Python(由该用户运行时)将首先自动获取该版本。 要确保您使用的Python可执行文件对应于pip模块和(稍后)已安装的six模块,请使用以下命令:

python -m pip install six --user
如果您碰巧没有使用系统python(例如,z/usr/local/bin/python
,或
python3
等),则
python
可能是另一种形式 不需要
sudo`或类似产品

如果pip抱怨需求已经是最新的(不应该,否则您就不会遇到上述问题),请尝试:

完成后,您可以检查
$HOME/Library/Python/x.y/lib/Python/site packages
以查看是否在那里看到了六个版本的正确版本。这是您的本地用户库目录,而不是系统目录。
x.y
可能是2.7,但请检查
Python
是否确实是该版本


谷歌api客户端也可能存在问题。我不知道它是否安装了pip,但除此之外,您可以尝试类似于六个:

python -m pip install <google-api-client> --user (--upgrade --force)
python-mpip安装--user(--upgrade--force)

您是否可以包含完整的回溯,以便我们可以看到错误来自哪个文件?@Evert添加了完整的回溯。我看到回溯中提到了pycharm。您是通过pycharm运行的吗?可能是这样的