我已安装scipy来从.mat文件读取数据。在命令提示符下使用Python时,我可以键入以下内容并获取所需的值:
命令提示符
>>> import scipy
>>> import scipy.io
>>> from scipy.io import loadmat
>>> x=loadmat('C:\My websites\Rooftop PV.mat')
>>> size = x['component']['Size'][0][0][0][0]
>>> print(size)
150
>>> import sys
>>> sys.executable
'C:\\...\\Documents\\anaconda3\\python.exe'
但是,当我运行.py脚本...
.py脚本
import sys
print(sys.executable)
import scipy
import scipy.io
from scipy.io import loadmat
x = loadmat('C:\My websites\Rooftop PV.mat')
size = x['component']['Size'][0][0][0][0]
print(size)
它找不到scipy.io模块,产生此错误:
错误:
C:\Python\pythonw.exe
File "C:\Python\testmatfile.py", line 4, in <module>
import scipy.io
ModuleNotFoundError: No module named 'scipy.io'
关于为什么会这样的任何想法?谢谢!
答案 0 :(得分:3)
如您所见,使用了两个不同的python可执行文件。第一种情况使用C:\\...\\Documents\\anaconda3\\python.exe
,第二种情况使用C:\Python\pythonw.exe
。您已经为第一个python可执行文件安装了lib(位于相应的路径中),因此只需要运行
C:\Python\pythonw.exe -m pip install <lib_name>
命令将lib安装到与第二个可执行文件相关的路径中。您还可以使用virtualenv或docker将脚本运行到具有所有必需依赖项的隔离环境中。