簡體   English   中英

python腳本不會從命令行運行,但是在以“ python”開頭時會運行

[英]python script won't run from command line but will when preceded by 'python'

我編寫了一個腳本,每天需要運行兩次。 我的意圖是制作腳本,然后在必要的時間表上將其作為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。 我相信這條路徑有問題,但我似乎無法弄清楚這是什么。 有任何想法嗎?

在命令行執行:哪個python

驗證輸出是否等於您在腳本開始時編寫的輸出,如果不只是對其進行更改,它將可以正常工作。

該腳本必須這樣運行:./python_daily_update.py

在linux / unix中,除非可執行文件在您的PATH否則您必須告訴它文件在哪里,因此./python_daily_update.py告訴Shell可執行文件在您的當前目錄中,即.

shebang也不指向您的Anaconda安裝,因此您還需要更改它。

我沒有觀察到您正在運行哪個shell,但是一般規則是,在加載shell時會加載一個rc文件,並且您應該在其中包含PATH語句,其中包括./作為搜索路徑之一用於外殼程序找到的腳本或程序中遇到的可執行文件。 如果沒有它,您將得到您描述的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM