如何添加默认路径来查找python脚本文件?

如何添加默认路径来查找python脚本文件?,python,path,directory,Python,Path,Directory,我一直很难弄清楚如何在Windows中正确设置Python 我已经设置了路径=%path%;C:\python27,所以我可以用python打开.py文件。我只是不知道如何更改保存目录 例如,我将所有自定义脚本保存在Documents/Python目录中。它是Win7,所以没有我的文档。我希望能够在IDLE中键入“HelloWorld.py”,并让它在这个文件夹中搜索任何匹配的脚本名称。不过,我还没有弄清楚如何将这个目录添加到默认的Python搜索路径中 有什么想法吗 这里有一个尝试 >&

我一直很难弄清楚如何在Windows中正确设置Python

我已经设置了路径=%path%;C:\python27,所以我可以用python打开.py文件。我只是不知道如何更改保存目录

例如,我将所有自定义脚本保存在Documents/Python目录中。它是Win7,所以没有我的文档。我希望能够在IDLE中键入“HelloWorld.py”,并让它在这个文件夹中搜索任何匹配的脚本名称。不过,我还没有弄清楚如何将这个目录添加到默认的Python搜索路径中

有什么想法吗

这里有一个尝试

>>> import sys 
>>> sys.path 
['C:\\Python27\\Lib\\idlelib', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages'] 
>>> sys.path.append('C:\Users\Jimmy\Documents\Python') 
>>> HelloWorld.py 
Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> HelloWorld.py NameError: name 'HelloWorld' is not defined `
导入系统 >>>系统路径 ['C:\\Python27\\Lib\\idlelib','C:\\Windows\\system32\\Python27.zip','C:\\Python27\\DLLs','C:\\Python27\\Lib','C:\\Python27\\Lib\\plat-win','C:\\Python27\\Lib\\Lib-tk','C:\\Python27\\Lib\\site-packages'] >>>sys.path.append('C:\Users\Jimmy\Documents\Python') >>>HelloWorld.py 回溯(最近一次调用):HelloWorld.py NameError中第1行的文件“”:未定义名称“HelloWorld”`
或者设置您的
$PYTHONPATH
环境变量

,这不是运行脚本的方式。修改您的
%PATH%
环境变量以包含包含所讨论脚本的目录,然后从命令提示符下运行脚本,不要空闲。

请按照教程操作

sys.path.append(r'C:\Users\Jimmy\Documents\Python') 
不能将
\
随机放入字符串中

查看错误消息时,请注意,所有系统提供的路径元素都有
\\
来转义
\
的含义


一个教程将向您展示如何使用
r“
字符串轻松实现这一点。

我将这一点放在了一个注释中,但我将在回答中加入一个更详细的内容。不清楚您是想将HelloWorld.py作为脚本运行,还是想在其中导入一些内容。不过,它们是两个独立的东西

如果您只想从cmd或Powershell运行HelloWorld.py,则需要修改PATH环境变量。在Windows中,您可以在“我的电脑”>“属性”>“高级”>“环境变量”中执行此操作。单击“路径”,然后将路径添加到包含HelloWorld.py的文件夹中并保存更改。您需要将cmd或Powershell重新启动到看到这些变化,这些变化就会持续下去。(换句话说,这是一个永久性的变化)

如果您希望能够导入HelloWorld内容,那么您有几个选项,但最简单的方法是将要导入的代码包装到HelloWorld.py中的函数中。因此,假设您当前的HelloWorld.py如下所示:

print "Hello World!"
import HelloWorld

HelloWorld.hello_world()
# Will output: "Hello World!"
将其更改为:

def hello_world():
    print "Hello World!"
然后,您只需要将路径添加到包含HelloWorld.py到sys.path的文件夹中。听起来您已经这样做了。然后您就可以这样导入:

print "Hello World!"
import HelloWorld

HelloWorld.hello_world()
# Will output: "Hello World!"
如果您仍然希望HelloWorld.py能够像脚本一样运行,那么您需要将其添加到脚本的底部:

if __name__ == 'main':
    hello_world()
这会告诉Python在导入文件时不运行该文件,如果没有导入,它将在if块中执行代码


希望这能澄清问题。对于开始使用Python的人来说,这肯定是一个常见的困惑源。

您是否尝试过设置
PYTHONPATH
环境变量?我确实设置了PYTHONPATH=C:\Users\Jimmy\Documents\Python'@s.Lott还没有成功。“我的文档/Python”不是“C:\Users\Jimmy\Documents\Python”“.是哪一个?谢谢,尽管我仍然得到'>>>导入sys>>>>sys.path['C:\\Python27\\Lib\\idlelib','C:\\Windows\\system32\\Python27.zip','C:\\Python27\\DLLs','C:\\Python27\\Lib','C:\\Python27\\Lib\\plat win','C:\\Python27\\Lib-tk','C:\\Python27\\Lib-Lib-tk','C:\\Python27\\Lib\\Lib-site-packages'>>sys.path.append”('C:\Users\Jimmy\Documents\Python')>>>HelloWorld.py回溯(最近一次调用):文件“”,HelloWorld.py名称中的第1行错误:未定义名称“HelloWorld”`>>import sys>>>sys.path['C:\\Python27\\Lib\\idlelib','C:\\Windows\\system32\\Python27.zip','C:\\Python27\\dll','C:\\Python27\\Lib','C:\\Python27\\Lib\\plat-win','C:\\Python27\\Lib\\Lib-tk','C:\\Python27\\Lib\\site-packages']>>sys.path.append('C:\Users\Jimmy\Documents\Python')>>>HelloWorld.py Traceback(最近一次调用):File"",HelloWorld.py NameError中的第1行:名称“HelloWorld”未定义“对不起,我在可读性方面有点问题。@JiMeTehHak:不要在注释中发布错误消息或代码。请使用您的回溯更新您的问题。正如Ignacio提到的,您似乎有导入模块的概念与从您的shell。如果您希望能够打开一个终端并键入HelloWorld.py而不出现错误,那么您需要修改PATH环境变量以包含包含HelloWorld.py的路径。在Windows中,您可以通过右键单击“我的电脑”>“属性”>“高级”>“环境变量”来执行此操作。抱歉,最后一部分显示if name='main'正被堆栈溢出攻击。它正在从_uuuu_uuu_uu中去掉双下划线。因此,在'main'周围应该有双下划线,就像在name中一样