从Windows命令行启动Python脚本:脚本启动,然后失败

从Windows命令行启动Python脚本:脚本启动,然后失败,python,python-3.x,anaconda,Python,Python 3.x,Anaconda,我是新手,请耐心点 我从另一位工程师那里继承了一个python脚本。为了方便起见,我希望能够从Windows bat文件启动脚本,但最初我试图通过从Windows命令行运行来进行调试 每当我从CMD启动脚本时,它似乎启动正常,然后立即失败并出现错误 我的环境: Windows7 Pro和Windows10 Pro(出现相同的错误), 水蟒3.7,斯皮德3.3.2 当我从内部运行脚本时,脚本运行正常,没有错误 当我尝试从Windows CMD运行时: C:\Windows\system32&g

我是新手,请耐心点

我从另一位工程师那里继承了一个python脚本。为了方便起见,我希望能够从Windows bat文件启动脚本,但最初我试图通过从Windows命令行运行来进行调试

每当我从CMD启动脚本时,它似乎启动正常,然后立即失败并出现错误

我的环境: Windows7 Pro和Windows10 Pro(出现相同的错误), 水蟒3.7,斯皮德3.3.2

当我从内部运行脚本时,脚本运行正常,没有错误

当我尝试从Windows CMD运行时:

  C:\Windows\system32>  "%programdata%\Anaconda3\python.exe"   "B:\IcCharData\B1505_Process_Data_20190214.py"
我发现以下错误:

Traceback (most recent call last):
  File "B:\IcCharData\B1505_Process_Data_20190214.py", line 21, in <module>
    import pandas as pd # Dataframe library
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\__init__.py", line 19, in <module>
    "Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']
在2019年2月24日针对AJNeufeld的评论添加:

在Spyder中运行: 在Anaconda提示符下运行:
我非常确定(从导入错误中给出的信息来看),您唯一要做的就是在导入熊猫之前导入Numpy。您可以通过切换第22行和第21行来实现这一点

您是否至少尝试过
conda安装numpy
,因为您的Anaconda安装似乎不包括numpy。(有人能把它变成评论吗?谢谢。)

如果你想让批处理文件正常工作,你的批处理文件需要如下所示:

调用C:/ProgramData/Anaconda3/Scripts/activate.bat C:/ProgramData/Anaconda3 C:\ProgramData\Anaconda3\python.exe“C:/Users/xxx/Documents/script.py”


希望这有帮助……

如果有任何答案适用于您的案例,您能检查一下吗?在我的新手眼里,这似乎不相关。请注意,我只有一个python安装,即几周前安装的“完整”Anaconda3.7。它应该有所有必需的软件包,而且我还使用命令“conda update anaconda”进行了更新。您能从Spyder内部和Windows CMD中的脚本
打印(sys.path)
吗?我怀疑它们会有所不同,根据启动方法指示不同的环境。你能试着运行:
C:\Windows\system32>%programdata%\Anaconda3\python.exe“-C”import numpy as np;print(np.\uu version\uuuuuu)”
@Justin Ezequiel,好的,我将你的请求复制/粘贴到CMD中,我们从结果中学到了什么?它产生了更多不同类型的错误。不幸的是,错误列表太长,我无法粘贴到这里,注释不允许。脚本在Spyder IDE中运行正常,为什么从windows命令行调用时会“中断”呢?这应该没有什么区别。进口订单真的不重要。@Tomothy32它确实重要,因为在进口订单中,它表明熊猫需要Numpy的依赖,因此,您可以通过切换行来获得依赖关系。@TomH可能Spyder IDE已经具有Numpy的依赖关系,因此Pandas可以运行properly@ArnavPoddar我认为你从根本上误解了进口。导入是针对当前文件的。打开一个新的文件/交互式窗口,键入
导入熊猫为pd
,如果您安装了所有依赖项,则该窗口将正常工作。不必导入依赖项。“numpy”、“numpy base”、“numpydoc”已安装。很抱歉,此答复的格式不正确,很难阅读:(base)C:\Users\th>conda list#环境中的程序包,位于C:\ProgramData\Anaconda3:##Name Version Build Channel[Sniped]numpy 1.15.4 py37h19fb1c0 numpy base 1.15.4 py37hc3f5095_0 numpydoc 0.8.0 py37_0Jonathan--它可以工作!非常感谢你。一百年来我从来没有想到过这一点。你能解释一下它为什么有效吗?(我给了你一个“向上”的投票,但没有出现,因为我没有足够的“声誉”)欢迎@TomH Yes,并尝试一下错误。我认为存在一些与路径相关的问题,因此需要专门指定所有可执行路径。
[snipped some irrelevant comments]

20  # Load the necessary libraries
21  import pandas as pd # Dataframe library
22  import numpy as np # Numeric library
23  import glob # Files related
24  import os # Operating System related
25  import sys #Operating System related
26  import re # regular expression related
27  import sqlite3 # database
28  import datetime
29  import subprocess # for running external programs like JMP from python
30  import logging # enables logging to both screen and a file
31  import statsmodels.api as sm # Modeling library used for linear regression

33  # Logging settings
34  logfilename = "./3_OutputData/B1505_Data_Process_Log_" + datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") + '.txt'
35  level = logging.INFO
36  format = '  %(message)s'
37  handlers = [logging.FileHandler(logfilename), logging.StreamHandler()]
38  logging.basicConfig(level = level, format = format, handlers = handlers)

[snipped remaining 300+ lines of code]
import sys
print(sys.path)

runfile('B:/Desktop/untitled0.py', wdir='B:/Desktop')    # TH: apparently because spyder prompted me to save the script here#
[
'C:\\Users\\th',                 # TH: line not present with Anaconda Prompt#
'C:\\ProgramData\\Anaconda3\\python37.zip', 
'C:\\ProgramData\\Anaconda3\\DLLs', 
'C:\\ProgramData\\Anaconda3\\lib', 
'C:\\ProgramData\\Anaconda3', 
'', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions', # TH: line not present with Anaconda Prompt#
'C:\\Users\\th\\.ipython'                       # TH: line not present with Anaconda Prompt#
]
(base) C:\Users\th>python
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import sys
>>> print(sys.path)

[
'', 
'C:\\ProgramData\\Anaconda3\\python37.zip', 
'C:\\ProgramData\\Anaconda3\\DLLs', 
'C:\\ProgramData\\Anaconda3\\lib', 
'C:\\ProgramData\\Anaconda3',
'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin'
]