【发布时间】:2019-02-21 03:15:13
【问题描述】:
我正在新职位上运行一个工作项目。
如我所见,我相信在其中创建了虚拟环境:
$head bm3.py
#!/usr/bin/env /opt/bm3_venv/bin/python3
bm3_venv 是使用 requirements.txt 创建的环境名称(使用 virtualenv?) $ ls -la /usr/bin/env -rwxr-xr-x。 1 根 28992 2016 年 6 月 30 日 /usr/bin/env
bm3.py 大概在整个项目中都使用了 python3,不仅从上面 bm3.py 的第一行来看,而且在其他一些使用 print('asdf') 的 python 脚本中也看到了,这是一个 python3 语法。
但是我确实在项目中看到有python2语法打印'asdf',即
/data/cloudera/parcels/CDH-5.12.0-1.cdh5.12.0.p0.29/bin/../lib/impala-shell/impala_shell.py在执行bm3.py时使用,impala-shell.py是用python2语法写的。
这意味着,在当前工作的项目中,当运行 bm3.py 时,它使用的是 python3,但在同一个运行中也以某种方式使用了 python2。
怎么会这样?
顺便说一句,我在哪里可以下载 CDH-5.12.0-1.cdh5.12.0.p0.29 包裹的 impala-shell.py 的原始副本?
非常感谢。
更新:
现有环境下bm3.py的第一行是:
/usr/bin/env /opt/al2_venv/bin/python3
这指定在这个 bm3.py 中使用 python3
在现有环境中使用的impala-shell.py中第一行是:
/usr/bin/env /usr/bin/env python
这指定在这个 impala-shell.py 中使用 python2
现在,问题变成了/usr/bin/env 在这里如何工作?
如果我在现有环境中运行它,我会得到一个变量设置列表,如下所示:
> XDG_SESSION_ID=224064 SELINUX_ROLE_REQUESTED= TERM=xterm
> SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=192.168.103.81 50182 22
> PATH=/usr/lib64/qt-3.3/bin:/home/xxxx/perl5/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/tableau/tabcmd/bin:/home/rxie/.local/bin:/home/rxie/bin
> PWD=/home/xxxx JAVA_HOME=/usr/java/latest LANG=en_US.UTF-8
> KDEDIRS=/usr SELINUX_LEVEL_REQUESTED= HISTCONTROL=ignoredups
> KRB5CCNAME=FILE:/tmp/krb5cc_1377008653_sw88z6 SHLVL=1 HOME=/home/xxxx
> PERL_LOCAL_LIB_ROOT=:/home/xxxx/perl5 LOGNAME=xxxx
> QTLIB=/usr/lib64/qt-3.3/lib SSH_CONNECTION=192.168.103.81 50182
> 192.168.101.231 22 LESSOPEN=||/usr/bin/lesspipe.sh %s XDG_RUNTIME_DIR=/run/user/1377008653
> QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins
> PERL_MM_OPT=INSTALL_BASE=/home/rxie/perl5
> _=/usr/bin/env
这个环境是做什么用的,我该如何使用它?谢谢。
【问题讨论】:
标签: python-3.x python-2.x