Intereting Posts
Что это за таинственный процесс под названием «proc» в моем списке процессов При запуске и остановке звука появляется «звук» Как настроить GParted видео режим в Oracle Virtualbox? В чем разница / отношение между именем ядра и именем ОС? Порт для вывода / ограничения трафика ebtables Arch Linux cfdisk запрашивает тип метки диска apt-get сломался после попытки установить вино «Который» с небольшим «grep» -подобным решением? Печать даты с ведущими нулями Как найти текст в файлах и поддерживать только соответствующие совпадающие строки с помощью терминала на OS X? Необходимо подключиться к порту через LAN через межсетевой экран IPTABLES на статическом IP-интерфейсе Каково значение группы «колесо»? Как узнать, как совпадают матчи соответствия fc? Как проект Linux Kernel отслеживал ошибки в ранние дни? Как получить название медиа, воспроизводимого в VLC или других медиаплеерах с использованием CLI?

Избегайте передачи переменной среды в скрипт python

У меня есть небольшой скрипт python

#!/usr/bin/env python3 import some_python3_module def main(): # do stuff if __name__ == '__main__': main() 

и не может запустить этот скрипт с помощью Python3, так как ROS устанавливает переменную PYTHONPATH в некоторые местоположения, связанные с версией 2.7. То есть Python 3 не может найти какие-либо модули в своем каталоге dist-packages . Я хотел бы переопределить это поведение, не изменяя внешнюю среду. То есть, я хочу unset PYTHONPATH , но только для этого скрипта и, желательно, изнутри, так что shebang все равно будет работать. Это возможно?

Не уверен, что это лучше подходит для superuser.com

Существует опция командной строки, которая соответствует вашим потребностям:

 #!/usr/bin/env python3 -E 

-E

Игнорируйте все переменные среды PYTHON *, например PYTHONPATH и PYTHONHOME, которые могут быть установлены.