我有一个使用 Spyder 执行时没有错误的脚本。从命令提示符运行相同的脚本时会出现错误。我不知道为什么会出现错误。我昨天花了大部分时间试图了解为什么会出现错误,但失败了。所以我来这里了。
在我的脚本的第 9 行
import numpy
import pandas
import pyodbc
代码的其余部分运行 odbc 查询、操作查询结果并将操作后的查询结果保存到其他地方。
我的脚本在 Spyder 中运行时没有错误。
我尝试使用以下代码以管理员身份在命令提示符下执行该脚本(我将路径替换为“C:\Users\RAdams\AppData\ etc”):
C:\path\pythonw.exe C:\path\receiving3.pyw 1>stdout.txt 2>stderr.txt
执行后,“stdout.txt”为空白,“stderr.txt”包含:
Traceback (most recent call last):
File "C:\path\receiving3.pyw", line 9, in <module>
import numpy
File "C:\path\lib\site-packages\numpy\__init__.py", line 140, in <module>
from . import _distributor_init
File "C:\path\lib\site-packages\numpy\_distributor_init.py", line 34, in <module>
from . import _mklinit
ImportError: DLL load failed: The specified module could not be found.
知道为什么这可以在 Spyder 中运行,但不能在命令提示符中运行吗?我应该使用命令提示符以外的其他东西吗?我的目标是让它在 Windows 任务计划程序中运行 - 我认为让它在命令提示符中成功运行是合适的前提。
另外:昨天我重新安装了 miniconda。然后我使用 conda 将 jupyter、matplotlib、numpy、openpyxl、pandas、pyodbc、scikit-learn、seaborn 和 spyder 安装了到基础版本中。我还没有创建任何环境。
答案1
我创建了一个 .bat 文件
c:
call C:\Users\RAdams\AppData\Local\Continuum\miniconda3\Scripts\activate base
pythonw C:\Users\RAdams\blahblah\receiving3.pyw
conda deactivate
使用 miniconda3/scripts 中的 activate.bat 文件让我可以使用 numpy 的创建环境(我认为这就是为什么 numpy 以前无法工作的原因)。
现在一切正常 - 耶!
答案2
第一个解决方案是尝试在 Anaconda Prompt 中运行它(如果您已通过 Anaconda 安装了 Spyder)。如果这不起作用,请尝试通过 {cd C:\path} 更改代码位置(目标文件)
然后正常运行代码。