![](/img/trans.png)
[英]Why doesn't it work sometimes when using single quotes to surround the command in `python -c [command]` in PowerShell (and in command prompt as well)?
[英]Python doesn't work properly when I execute a script after using Right Click >> Command Prompt Here
这是一个奇怪的错误。 我知道PATH变量有点时髦,但不知道如何解决。
如果我有脚本C:\\ Test \\ test.py并从IDLE内执行,则可以正常工作。 如果我使用Run >> cmd.exe打开命令提示符并手动导航,则效果很好。 但是,如果我使用Windows 7的便捷功能,请右键单击文件夹>>“命令提示符”,然后在此处键入test.py,它将失败,并出现导入错误。
如果我使用上面的后一种方法,我也不能只是键入“ python”来到达python shell会话。
有任何想法吗?
编辑:为有效的命令提示符打印python路径会产生正确的路径。 在不工作的“此处的命令提示符”上打印它会产生:“未定义环境变量python”。
首先,我在Windows7(及其他)上工作,并使用“命令提示符”在命令行运行python
。 通过运行“此处命令提示符”并运行set
,确保在PATH环境变量中具有包含python.exe的目录。
现在是导入错误。 导入时,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进行比较。 这应该为您提供解决导入错误所需的信息。
我使用的Windows很少,但是也许当您打开“右键单击->命令提示符”时,PATH与手动导航不同。 首先尝试打印您的PATH(哦,我不理想如何执行此操作),然后查看它是否在2种情况下有所不同。
您可以在命令行上使用“ set”命令检查当前存在的环境变量。 为了使python正常工作,您至少需要指向python库的PYTHONPATH,并且python.exe的路径应包含在PATH变量中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.