Одно из отличий заключается в том, что «./script.py» работает только в том случае, если script.py является исполняемым (как в разрешения файлов), но «python script.py» работает независимо. Тем не менее, я сильно подозреваю, что есть больше различий, и я хочу знать, что они собой представляют.При вызове сценария Python в чем разница между «./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, которые будут установлены специально для каждой оболочки.