我目前在使用Atom运行python代码时遇到了一些困难,否则通过命令提示符启动时就可以正常工作了。对于那些不熟悉Udacity的机器学习介绍的人,“电子邮件预处理”模块位于“…\naivey_bayes\tools”目录中。在
代码:
import sys
from time import time
sys.path.append("../tools/")
from email_preprocess import preprocess
每当我运行 作者_身份证使用以下命令通过命令提示符进行文件:
^{pr2}$在D:\Misiek\Pulpit\python\ud120 projects master\naivey_bayes目录中,它可以正常工作。但是,如果你想运行_身份证通过Atom文件(使用Atom runner),我收到错误消息:
Traceback (most recent call last):
File "D:\Misiek\Pulpit\python\ud120-projects-master\naive_bayes\nb_author_id.py", line 17, in <module>
from email_preprocess import preprocess
ImportError: No module named email_preprocess
你知道为什么它是通过命令提示符而不是通过Atom运行的吗?在
将该目录添加到PYTHONPATH环境变量中,这样就不必从同一目录导入它。通过添加
D:\Misiek\Pulpit\python\ud120-projects-master\naive_bayes;
将该目录追加到末尾最好不要在
sys.path
中使用相对路径。你永远不知道程序运行时的当前目录是什么。最有可能的是,从Atom运行时,当前目录不是从命令行运行时所在的位置。在如果需要相对于要从中导入模块的目录来定位模块,请尝试以下方法(按列出的顺序)查找并将其添加到搜索路径公司名称:
myfile = globals().get("__file__")
(这将从导入的模块或主程序中工作,如果它是通过IDE加载的,或者通过除直接从命令行以外的任何其他方式加载的)。如果这返回一个值,请将os.path.dirnme(myfile)
(或它的派生值,根据需要)添加到路径中。在os.path.dirname(sys.argv[0])
(这只适用于主模块)相关问题 更多 >
编程相关推荐