python 3.4中,代码:print("type(self.config)=%s" % (type(self.config)))

self.connection = pymysql.connect(**self.config, cursorclass=pymysql.cursors.DictCursor)

出错:    self.connection = pymysql.connect(**self.config, cursorclass=pymysql.cursors.DictCursor)

^

SyntaxError: invalid syntax

而调试期间,在前面已经打印,确定此处的config,的确是dict:type(config)=<class 'dict'>, type(self.config)=<class 'dict'>

但是为何语法出错,还是不懂为何。

因为同样的代码,之前在Mac本地调试的时候,是好好的。

然后上传到服务器上,才出错的。

所以以为是2个星号方面的问题呢

python ** 两个星号

“单星号(*):*agrs

将所以参数以元组(tuple)的形式导入:”

“单星号就是起到将元组“解包””

python ** dict not work

python **  syntax error

python double asterisk syntax error

一直都找不到错误原因。

无意间看到,PyCharm中,其实早已有语法错误提示了:

Python version < 3.5 not allow keyword argument after **exception

看来是:

此处的Python 3.4中,版本小于3.5,不支持**someDictOrTuple之后,再跟着其他参数的写法

换成:self.config["cursorclass"] = pymysql.cursors.DictCursor

self.connection = pymysql.connect(**self.config)

结果就好了,没有语法错误了。

【总结】

作为一个dict类型的变量,前面加上2个星号,去传递给函数:self.connection = pymysql.connect(**self.config, cursorclass=pymysql.cursors.DictCursor)

之前在Mac本地,用PyCharm调试时是没有问题的

-》因为当时Mac中的Python版本是虚拟环境中安装的Python 3.6

-〉Python3.5之后支持:someFuntion(**someDict, otherParameter)

的写法

而同样代码上传到服务器中,结果却报错:

SyntaxError: invalid syntax

原因是:

服务器中Python是3.4版本,小于3.5,不支持这种写法。

而之所以服务器中,不是和本地一样的虚拟环境中python的3.6版本一样,是因为:

pipenv去install,尝试复制同样的虚拟环境时,发现服务器中只有python 3.4的

所以就暂时忽略python 3.4和3.6的区别,继续正常作为虚拟环境去使用了。

-》也可以看出pipenv的一个缺点:

在本地Mac已经安装了Python3.6的情况,去创建的虚拟环境后,

想要迁移到服务器中,其之前已经安装了Python3.4的前提下,则无法用pipenv复制同样的python 3.6的虚拟环境。

而此处,解决办法很简单,改为:self.config["cursorclass"] = pymysql.cursors.DictCursor

self.connection = pymysql.connect(**self.config)

即可消除语法错误。

python中syntaxerror_【已解决】Python中两个星号**参数去传递给函数出错:SyntaxError invalid syntax...相关推荐

  1. python3语法错误python_[大数据]Python 3.x中使用print函数出现语法错误(SyntaxError: invalid syntax)的原因 - 码姐姐找文...

    在安装了最新版本的Python 3.x版本之后, 去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误: SyntaxErro ...

  2. python中print语法错误_Python 3.x中使用print函数出现语法错误(SyntaxError: invalid syntax)的原因...

    在安装了最新版本的Python 3.x版本之后, 去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误: SyntaxErro ...

  3. 力扣刷题之python报错SyntaxError: invalid syntax ^

    本人力扣小白,第一天刷题一直出错SyntaxError: invalid syntax,,,, 解决办法: 检查语言选项是否为python3,选python的话,默认为python2,如图 然后就解决 ...

  4. 已解决Python向数据库插入数据的字符串中含有单引号或双引号报错

    已解决Python向数据库插入数据的字符串中含有单引号或双引号报错:(102, b"Incorrect syntax near 'S'.DB-Lib error message 20018, ...

  5. python中执行py文件出错(提示File “<stdin>”,line 1,SyntaxError:invalid syntax)

    python中执行py文件出错(提示File "<stdin>",line 1,SyntaxError:invalid syntax) 解决办法: 上图中已通过输入py ...

  6. python pip install syntaxerror_解决pip install xxx报错SyntaxError: invalid syntax的问题

    python--pip install xxx报错SyntaxError: invalid syntax 在安装好python后,进入python运行环境后,因为我要用pip安装开发Web App需要 ...

  7. 已解决Python调用免费申请的百度图形识别接口案例

    已解决Python调用免费申请的百度图形识别接口{'error_code': 18, 'error_msg': 'Open api qps request limit reached'} 文章目录 报 ...

  8. 已解决(Python语法报错)SyntaxError: invalid syntax

    已解决(Python语法报错)SyntaxError: invalid syntax 文章目录 报错信息 报错翻译 报错原因 解决方法 千人全栈VIP答疑群联系博主帮忙解决报错 报错信息 粉丝群里面一 ...

  9. python中引入名称中带有横杠模块的时候出现:SyntaxError: invalid syntax

    首先使用pip3 list查看pyhton中存在哪些模块 通过上图可知,我们有模块de-core-news-sm 然后,在python中import带有横杠的模块的时候,会报错:SyntaxError ...

最新文章

  1. 前缀列表(prefix-list)讲解
  2. python小课堂28_python学习28——课后练习
  3. mysql 添加时间戳列
  4. ios兼容 iphoneX ios10 ios11
  5. 北京关于领取2021年上半年合格证书的通知
  6. SonarQube6.2源码解析(四)
  7. (转) Twisted :第十九部分 改变之前的想法
  8. Metro UI 的设计感悟
  9. 向Redis中存入JSON格式数据
  10. 使用BCC工具获取Linux内核空间read/write操作的文件名
  11. java jni 傻瓜教程
  12. 机械制图计算机识图,机械制图基础知识
  13. 视频转换器怎样将FLV转MP4格式
  14. Clickhouse查询语句 sample
  15. ​Aruba 无线控制器本地账号登录密码重置
  16. 关于intrins.h头文件的介绍,做流水灯时候更方便
  17. antd vue table ellipsis属性不生效
  18. java unicode 藏文_UNICODE 区域对照表
  19. 永磁同步电机准谐振自抗扰电流谐波抑制(QRADRC)的无位置传感器控制
  20. 默孚龙导电滑环在比亚迪垂直循环式充电站中的应用

热门文章

  1. 汉诺塔的java实现及一种思路
  2. 读写文件--with open
  3. html5触摸界面设计与开发_原生APP的开发步骤主要分为哪些?
  4. 安卓最好的浏览器_今日软件 | AI一键抠图、隐私保护工具、全能下载器、安卓启动器、茄子快传、迅雷、批量字符替换、傲游浏览器、全局负一屏...
  5. 数据库数据类型和占用字节数对比
  6. GET请求如何传递数组参数
  7. 查看linux目录剩余空间大小
  8. Node 中用 ESLint 验证代码
  9. fishhook源码分析
  10. ETL PostgreSQL in Oracle ODI 12c