Python 的 type hint 在 centos 下报错是啥情况,求解

2019-02-19 16:34:13 +08:00
 kblacksheep
File "/var/lib/jenkins/workspace/git_pipline/BeautifulReport/BeautifulReport.py", line 93
def __repr__(self) -> str:
^
SyntaxError: invalid syntax

-> 和: 这两个在本地用 pycharm 都没问题,但是放在服务器直接运行就会提示 SyntaxError: invalid syntax,Python 版本都是 3.6.8 求大佬指导一下
2674 次点击
所在节点    程序员
15 条回复
menc
2019-02-19 16:36:06 +08:00
一般这种问题都是 python 版本的问题,实际调用的是 python2
wellsc
2019-02-19 16:43:38 +08:00
def 上面加一行:
``` python
import sys;print(sys.version)
```
kblacksheep
2019-02-19 17:11:52 +08:00
@menc
感谢大佬。。还真是 centtos 下 sudo 会切换到 python2.6 版本
kblacksheep
2019-02-19 17:12:01 +08:00
@wellsc
谢谢!~
KevinBu
2019-02-19 17:20:31 +08:00
用 centos 还是加上 virtualenv 比较好~ 不至于版本混乱
wellsc
2019-02-19 19:02:37 +08:00
@KevinBu virtualenv 跟 Python 版本没关系
Kilerd
2019-02-19 22:21:26 +08:00
@KevinBu #5 无论在哪里都应该用 pipenv + venv(virtualenv) 或者 pyenv + virtualenv 来隔离 Python 版本和依赖库

BTW,都 8102 年了,还不上 docker,还在等什么
kblacksheep
2019-02-19 23:45:10 +08:00
@Kilerd
其实已经用了 pipenv 和 pyenv 来管理了 但是直接 sudo python 还是执行的 2.6 版本的。。docker 确实得学学了 哈哈哈
Osk
2019-02-20 00:13:17 +08:00
不写 #!/usr/bin/env python3 吗? 还是虚拟环境创建的是 python2 ?
kblacksheep
2019-02-20 00:52:31 +08:00
@Osk
虚拟环境是 python3 但是激活虚拟环境之后再用 sudo python 还是 2 版本的。。我用 which python 得到 python3 的路径之后再 sudo 完整路径调用就行了 #!/usr/bin/env python3 我没写 明天试试看 谢谢大佬
lujiajing1126
2019-02-20 01:14:18 +08:00
jenkins 可以安装 pyenv 的插件,直接放在 pipeline 里面跑
kblacksheep
2019-02-20 08:43:02 +08:00
@lujiajing1126
卧槽还有这插件 我去看下 我现在都是在 jenkinsfile 里激活环境。。。
kblacksheep
2019-02-20 08:46:05 +08:00
@lujiajing1126
看错了 我以为是 pipenv....
Osk
2019-02-20 12:03:25 +08:00
@kblacksheep 如果是虚拟环境的话, 可以这样 sudo, 不需要修改脚本的#!/路径:

sudo bash -c ". my_venv/bin/activate;python /path/to/script.py"

由于安全原因, sudo 好像是不会继承当前 shell 的 PATH 变量, 而 virtualenv 需要将虚拟环境的 python 路径放在 PATH 最前面
congeec
2019-02-20 13:11:10 +08:00
@Kilerd 我表示 poetry 比 pipenv 好用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536608

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX