【发布时间】:2019-07-17 18:35:50
【问题描述】:
我是新手,请多多包涵。
我从另一位工程师那里继承了一个 python 脚本。为方便起见,我希望能够从 Windows bat 文件启动脚本,但最初尝试通过从 Windows 命令行运行来进行调试。
每当我从 CMD 启动脚本时,它似乎启动正常,然后立即失败并出现错误。
我的环境: Windows7 Pro 和 Windows10 Pro(出现同样的错误), Anaconda 3.7 , Spyder 3.3.2
当我从 内部 Spyder 运行脚本时,脚本运行良好,没有错误。
当我尝试从 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']
下面是脚本的第一部分,带有实际的 #s 行,错误似乎源于此。 互联网搜索无果。
可能是什么问题?
同样,请注意脚本在 Spyder 内部运行良好
[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]
添加于 2019-02-24,以回应 AJNeufeld 的评论:
在 Spyder 中运行:
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#
]
在 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'
]
【问题讨论】:
-
如果适用于您的情况,您能否查看Installing NumPy via Anaconda in Windows 的答案?
-
这对我的新手来说似乎无关紧要。请注意,我只安装了一个 python,几周前安装了“完整的”Anaconda 3.7。它应该包含所有必需的软件包,并且我还使用命令“conda update anaconda”进行了更新
-
您能在 Spyder 和 Windows CMD 中的脚本中
print(sys.path)吗?我怀疑它们会有所不同,根据启动方法指示不同的环境。 -
可以试试跑吗:
C:\Windows\system32> "%programdata%\Anaconda3\python.exe" -c "import numpy as np; print(np.__version__)" -
@Justin Ezequiel,好的,我将您的请求复制/粘贴到 CMD 中,我们从结果中学到了什么?它产生了更多不同类型的错误。不幸的是,错误列表太长,我无法在此处粘贴,cmets 不允许。
标签: python python-3.x anaconda