cygwin执行.py提示找不到模块,但已经安装模块的解决办法
、 在解决了cygwin中make命令不能使用的问题之后(https://www.cnblogs.com/zhenggege/p/10724122.html),make maskrcnn路径下的setup.py,提示错误:make**error 1: no module named setuptools
这个.py文件里有两句import代码:
1 from setuptools import setup, Extension 2 import numpy as np
既然没有setuptools模块那就安装吧,于是到python官网下载setuptools的zip包:https://pypi.org/project/setuptools/
解压后执行以下指令(不要问我为什么不直接pip install,我也不知道):
安装成功!再进行一遍make,还是提示错误:make**error 1: no module named numpy
说明setuptools安装成功,但第二句import还是错误,这就奇怪了,因为之前实现AlphaPose已经安装过numpy,怎么会找不到模块?
于是我运行pip install,但显示numpy已安装:
是不是安装不完整,或者被破坏了?于是我pip uninstall,再重新pip install,依然提示找不到numpy。
我打开cmd,进入python,import numpy,没有报错,导入成功!说明在cmd下numpy是安装成功的,但在cgywin下没有安装或者安装失败。
这里就要推荐一个英文网站stack overflow:https://stackoverflow.com/,我遇到的问题在这里都能有很好的解答或思路。最终我在how to use numpy with cygwin问题中得到了答案:
原来windows python和cygwin python是独立的,在windows pip install的numpy包,cygwin是不能使用的。在cygwin进入python环境,发现python是2.7版本,和windows的3.6版本是不一样的:
所以我们在cygwin pip install,对应的是python3版本的,不是2.7的。
接下来我借鉴了博文:win10环境下cygwin的安装以及opencv/python/pip等环境的搭建,进入cygwin重新安装了python2.7对应的pip2包,安装用命令pip2 install numpy:
成功安装了对应的numpy版本。此时再次import numpy,可以看到导入成功了。
回头来看,第一次安装setuptools没有出现问题的原因应该是没有用pip安装,而是使用了python setup.py install,系统自动安装了匹配python2.7的setuptools。