![]() | 1 menc 2019-02-19 16:36:06 +08:00 一般这种问题都是 python 版本的问题,实际调用的是 python2 |
![]() | 2 wellsc 2019-02-19 16:43:38 +08:00 def 上面加一行: ``` python import sys;print(sys.version) ``` |
![]() | 3 kblacksheep OP ![]() @menc 感谢大佬。。还真是 centtos 下 sudo 会切换到 python2.6 版本 |
![]() | 4 kblacksheep OP @wellsc 谢谢!~ |
![]() | 5 KevinBu 2019-02-19 17:20:31 +08:00 用 centos 还是加上 virtualenv 比较好~ 不至于版本混乱 |
![]() | 7 Kilerd 2019-02-19 22:21:26 +08:00 ![]() @KevinBu #5 无论在哪里都应该用 pipenv + venv(virtualenv) 或者 pyenv + virtualenv 来隔离 Python 版本和依赖库 BTW,都 8102 年了,还不上 docker,还在等什么 |
![]() | 8 kblacksheep OP @Kilerd 其实已经用了 pipenv 和 pyenv 来管理了 但是直接 sudo python 还是执行的 2.6 版本的。。docker 确实得学学了 哈哈哈 |
![]() | 9 Osk 2019-02-20 00:13:17 +08:00 不写 #!/usr/bin/env python3 吗? 还是虚拟环境创建的是 python2 ? |
![]() | 10 kblacksheep OP @Osk 虚拟环境是 python3 但是激活虚拟环境之后再用 sudo python 还是 2 版本的。。我用 which python 得到 python3 的路径之后再 sudo 完整路径调用就行了 #!/usr/bin/env python3 我没写 明天试试看 谢谢大佬 |
![]() | 11 lujiajing1126 2019-02-20 01:14:18 +08:00 jenkins 可以安装 pyenv 的插件,直接放在 pipeline 里面跑 |
![]() | 12 kblacksheep OP @lujiajing1126 卧槽还有这插件 我去看下 我现在都是在 jenkinsfile 里激活环境。。。 |
![]() | 13 kblacksheep OP @lujiajing1126 看错了 我以为是 pipenv.... |
![]() | 14 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 最前面 |