“python main.py”和“python /home/work/main.py”的运行方式是否不同

时间:2013-09-10 02:48:21

标签: python shell python-2.7

我在main.py目录下的shell中运行带有“python main.py”的python脚本,它报告错误并停止。但是当我运行完整路径的相同脚本时,如“python / home / work / main.py“在相同的情况下,它被阻止,直到我用”Ctrl + C“中断它,当它被中断时报告错误。但是看起来是相同的,通常如果没有错误。

我不知道为什么,有人可以告诉我吗?

错误:

^CTraceback (most recent call last):
  File "/home/work/video/fe/tvservice/main.py", line 17, in <module>
    from conf.settings import DATABASE_TV, WEB_SERVER_CONFIG, DATABASE_TV_MASTER,DATABASE_TV_LOG_MASTER, ZOOKEEPER_CONFIG
  File "/home/work/video/fe/tvservice/conf/settings.py", line 1
    hello world
              ^

settings.py 你好世界

1 个答案:

答案 0 :(得分:1)

如果您从完全执行相同的目录,并且您正在执行完全相同的文件,则大多数应该是相同的。您可能想到的差异是:

的价值
sys.argv[0]  # will be either '/home/work/main.py' or 'main.py'

请确保:

  • 您正在执行相同的文件,
  • 您正在使用相同的虚拟环境(或在两种情况下都不使用它),
  • 您正在执行来自同一目录的命令

以下结果应该完全相同:

# Imports, so the commands will not fail
import os
import sys

# These should be the same in both cases - print them/log/whatever and compare
os.getcwd()
sys.path