python脚本不会从命令行运行,但在前面有' python'

时间:2015-07-04 21:15:45

标签: python linux

我写了一个脚本,我需要每天运行两次。我的目的是制作脚本,然后按照必要的时间表将其作为cron作业运行 我在spyder IDE中编写了脚本,它从那里运行完美。我也可以通过输入python python_daily_update.py来从终端运行它。

我已将#!/usr/bin/python语句添加到脚本的前面并使其可执行。 当我尝试从命令行运行脚本时没有' python'继续它,我得到如下错误:

$ python_daily_update.py
Failed to import the site module
Traceback (most recent call last):
  File "/usr/lib/python3.4/site.py", line 586, in <module>
    main()
  File "/usr/lib/python3.4/site.py", line 572, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/lib/python3.4/site.py", line 287, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/lib/python3.4/site.py", line 263, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/lib/python3.4/site.py", line 253, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/lib/python3.4/sysconfig.py", line 597, in get_config_var
    return get_config_vars().get(name)
  File "/usr/lib/python3.4/sysconfig.py", line 540, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/usr/lib/python3.4/sysconfig.py", line 412, in _init_posix
    from _sysconfigdata import build_time_vars
  File "/usr/lib/python3.4/_sysconfigdata.py", line 6, in <module>
    from _sysconfigdata_m import *
ImportError: No module named '_sysconfigdata_m'

我正在运行linux mint 17.1。我相信路径有问题,但我似乎无法弄清楚它是什么。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

在命令行执行:which python

验证输出是否等于您在脚本开头写的输出,如果不是只是更改它,它将起作用。

脚本必须像这样运行:./ python_daily_update.py

答案 1 :(得分:1)

在linux / unix中,除非你的PATH中有可执行文件,你必须告诉它文件的位置,所以./python_daily_update.py告诉shell可执行文件在你当前的目录中,即{{1} }

shebang并没有指向您的Anaconda安装,因此您还需要更改它。

答案 2 :(得分:0)

我没有观察到你正在运行哪个shell,但一般规则是在加载shell时会加载一个rc文件,并且你应该在其中包含一个包含./的PATH语句。 shell找到的脚本或程序中遇到的可执行文件的搜索路径。如果你没有它,你将得到你描述的行为。