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