Ser*_*Ala 6 python django posix sh
一个区别是"./script.py"仅在script.py可执行时有效(如在文件权限中),但"python script.py"无论如何都有效.但是,我强烈怀疑存在更多差异,我想知道它们是什么.
我有一个Django网站,"python manage.py syncdb"工作正常,但"./manage.py syncdb"由于某种原因创建了一个损坏的数据库,这对我来说仍然是一个谜.也许这与syncdb从命令行提示输入超级用户名和密码的事实有关,并且可能使用"./manage.py syncdb"更改它与命令行交互的方式,从而破坏了密码.也许?我对此错误感到困惑."python manage.py syncdb"完全修复它,所以这只是好奇心.
谢谢.
编辑:对,对,我忘记了shebang line#!/ usr/bin/python的必要性.但我刚刚检查过,"python manage.py syncdb"和"./manage.py syncdb"正在使用相同的Python解释器(2.7.2,在Linux Mint 12上安装的唯一一个).然而前者的作品却没有.
Python代码看到的环境变量可能不同吗?我的代码确实要求$ LD_LOADER_PATH和$ PYTHON_PATH为每个shell设置特殊.
调用./script.py使用脚本中的"shebang行"来确定用于运行脚本的解释器.这样的线可能看起来像
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
要么
#!/usr/bin/python2.7
Run Code Online (Sandbox Code Playgroud)
或者使用python解释器的任何路径.如果它解析为由just调用的相同Python解释器
python
Run Code Online (Sandbox Code Playgroud)
从shell命令行,./script.py和之间没有区别python script.py,但是这两个版本最终可能会使用不同的Python解释器.