Одно отличие состоит в том, что «./script.py» работает только в том случае, если script.py является исполняемым (как в разрешениях для файлов), но «python script.py» работает независимо. Тем не менее, я сильно подозреваю, что есть больше различий, и я хочу знать, какие они есть.
У меня есть веб-сайт Django, и "python manage.py syncdb" работает просто отлично, но "./manage.py syncdb" создает поврежденную базу данных по какой-то причине, которая остается для меня загадкой. Возможно, это связано с тем, что syncdb запрашивает имя и пароль суперпользователя из командной строки, и, возможно, использование «./manage.py syncdb» изменяет способ взаимодействия с командной строкой, таким образом изменяя пароль. Может быть? Я просто сбит с толку этой ошибкой. "python manage.py syncdb" полностью исправляет это, так что это просто любопытство.
Спасибо.
Редактировать: Хорошо, верно, я забыл о необходимости строки shebang #! / Usr / bin / python. Но я только что проверил, «python manage.py syncdb» и «./manage.py syncdb» используют один и тот же интерпретатор Python (2.7.2, единственный установленный на Linux Mint 12). И все же первый работает, а второй нет.
Могут ли переменные среды, видимые кодом Python, отличаться? Мой код требует, чтобы $ LD_LOADER_PATH и $ PYTHON_PATH были установлены специально для каждой оболочки.