Jedna różnica polega na tym, że "./script.py" działa tylko wtedy, gdy script.py jest wykonywalny (jak w uprawnienia do plików), ale "python script.py" działa niezależnie. Jednak mocno podejrzewam, że jest więcej różnic i chcę wiedzieć, jakie one są.Podczas wywoływania skryptu w języku Python, jaka jest różnica między "./script.py" i "python script.py"
Mam witrynę Django, a "python manage.py syncdb" działa dobrze, ale "./manage.py syncdb" tworzy zepsutą bazę danych z jakiegoś powodu, który pozostaje dla mnie zagadką. Być może ma to związek z tym, że syncdb pyta o nazwę administratora i hasło z wiersza poleceń, i może używając "./manage.py syncdb" zmienia sposób, w jaki komunikuje się z linią komend, a tym samym łamie hasło. Może? Jestem po prostu zaskoczony tym błędem. "python manage.py syncdb" całkowicie to naprawia, więc jest to tylko ciekawostka.
Dzięki.
Edycja: W prawo, w prawo, zapomniałem o konieczności linii shebang #!/Usr/bin/python. Ale po prostu sprawdziłem, "python manage.py syncdb" i "./manage.py syncdb" używają tego samego interpretera Python (2.7.2, jedyny zainstalowany, na Linux Mint 12). Jednak te pierwsze działają, a te drugie nie.
Czy zmienne środowiskowe widziane przez kod Pythona mogą być inne? Mój kod wymaga $ LD_LOADER_PATH i $ PYTHON_PATH do ustawienia dla każdej powłoki.