无法在脚本中导入python模块,但可以在命令提示符下导入

时间:2018-06-26 21:29:03

标签: python import module scipy

我已安装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'

关于为什么会这样的任何想法?谢谢!

1 个答案:

答案 0 :(得分:3)

如您所见,使用了两个不同的python可执行文件。第一种情况使用C:\\...\\Documents\\anaconda3\\python.exe,第二种情况使用C:\Python\pythonw.exe。您已经为第一个python可执行文件安装了lib(位于相应的路径中),因此只需要运行

C:\Python\pythonw.exe -m pip install <lib_name>

命令将lib安装到与第二个可执行文件相关的路径中。您还可以使用virtualenvdocker将脚本运行到具有所有必需依赖项的隔离环境中。