避免将环境变量传递给 python 脚本

oar*_*ish 2 bash python environment-variables shebang python3

我有一个小的python脚本

#!/usr/bin/env python3

import some_python3_module

def main():
    # do stuff

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

并且无法使用 Python3 运行此脚本,因为 ROS 将该PYTHONPATH变量设置为某些与 2.7.版本相关的位置,这意味着 Python 3 在其dist-packages目录中找不到任何模块。我想覆盖这种行为而不必修改外部环境。也就是说,我希望unset PYTHONPATH,但仅限于这个脚本,最好是从它内部,这样shebang仍然可以工作。这可能吗?

不确定这是否更适合 superuser.com

VPf*_*PfB 5

有一个命令行选项可以满足您的需求:

#!/usr/bin/env python3 -E
Run Code Online (Sandbox Code Playgroud)

-E

忽略可能设置的所有 PYTHON* 环境变量,例如 PYTHONPATH 和 PYTHONHOME。