Mac电脑的使用者,跑程序时应该经常遇到这个问题:No Module named xxx
原因是,你运行的文件可能存在 My Document (Documents),而Python文件又在另外一个位置,在terminal用which python/where python 可以查看。
下载的配置文件,比如tornado又会存在其它的位置(与Python位置不同,也不在Documents)。这时候,运行失败,很可能出现Error: No Module named tornado之类的信息。明明已经安装了,系统路径也改了,但是还是不能用,比较崩溃。
这时候可以用这种方法
在需要运行的文件头部,
import sys
print(sys.path)
先看看这个文件运行时查看哪些路径。很可能python tornado的安装路径不在里面。
这时就需要加上
sys.path.append('/usr/local/lib/python2.7/site-packages/')
然后再
import tornado.httpserver
应该就可以运行了
另外一个方法就是软链接symbolic link,但是可能需要链接很多文件。如果这些文件都在一个路径里,则以上这个方法是更快的。
后记:最近发现,一个好的方法和习惯是,用conda或virtualenv(我只用过conda)创建一个虚拟环境env,然后下载python,和其它需要用到的包,比如tornado。然后你要运行的文件最好也放在这个env里。这样路径就统一了。我之所以这么做,最初是因为需要下载一个python3.5(我本来用的是python3.6,不想把大环境搞乱,所以创建了一个虚拟的),结果我发现,虚拟env非常好用,还顺便解决了no module named XXX的问题。
如果你用的是pycharm,配置project interpreter 可参考这篇文章:
https://blog.csdn.net/codechelle/article/details/77050957