在使用右键菜单打开命令提示符后,执行Python脚本时出现问题
这是个奇怪的bug。我知道我的PATH变量出了点问题,但不知道怎么修复。
如果我有一个脚本在C:\Test\test.py,然后在IDLE里执行它,一切都正常。如果我通过运行命令打开命令提示符(cmd.exe),然后手动导航到那个文件夹,执行也没问题。但是如果我在Windows 7中右键点击文件夹,选择“在此处打开命令提示符”,然后输入test.py,就会出现导入错误。
而且如果我用上面提到的方式,我也不能直接输入“python”来进入Python的命令行界面。
有没有什么想法?
补充:在正常工作的命令提示符中打印Python路径是正确的。而在“在此处打开命令提示符”中打印出来的却是:“环境变量python未定义”。
3 个回答
你可以在命令行中使用“set”命令来查看当前的环境变量。要让Python正常工作,至少需要有PYTHONPATH这个变量,它指向你的Python库,同时,Python的可执行文件路径也应该包含在你的PATH变量中。
我不太使用Windows,但可能当你右键点击选择命令提示符时,那个时候的PATH和你手动导航时的PATH是不同的。首先,试着打印一下你的PATH(哦,我不知道怎么做这个),看看在这两种情况下是否有区别。
首先,我在Windows7上工作(还有其他系统),通过“在此处打开命令提示符”来运行python
是可以正常使用的。确保你的环境变量中包含了python.exe所在的目录,可以通过“在此处打开命令提示符”后输入set
来查看。
接下来说说导入错误。当你导入模块时,Python会在一个叫做sys.path的列表中指定的目录里查找模块。PYTHONPATH这个环境变量会被添加到这个列表中,还有一些默认的目录,以及你正在运行的Python脚本所在的目录。不过在IDLE中,这个目录是IDLE本身的目录,所以这可能就是你在IDLE中运行和在命令行中运行时看到的差异原因。
想了解更多细节,可以查看这个链接:http://docs.python.org/tutorial/modules.html#the-module-search-path。
这是我给你解决这个问题的建议。你没有提到具体的导入错误是什么,但可以尝试在IDLE中运行脚本,并检查出问题的模块的.__file__
属性,看看它们在哪里。然后将IDLE中的sys.path和在命令行中运行Python时得到的sys.path进行对比。这应该能给你解决导入错误所需的信息。