告诉编译器去哪里找
“将模块放在正确的位置” 这个解决方案对于以下几种情况可能并不适用:
- 不希望将自己的模块填满Python解释器的目录;
- 没有在Python解释器目录中的存储文件的权限;
- 想将模块放在其他地方。
最后一点是 “想将模块放在其他地方”,那么就要告诉解释器去哪里找。我们之前通用的一种方法,就是编辑sys.path
,但这不是通用的方法。标准的实现方法是在PYTHONPATH
环境变量中包含模块所在目录。
PYTHONPATH
环境变量的内容会因为使用的操作系统不同而有所差异(参见下面的 “环境变量” ),但从基本上来说,它与sys.path很类似——一个目录列表。
环境变量
环境变量并不是Python解释器的一部分——它们是操作系统的一部分,基本上,它相当于Python变量,不过是在Python解释器外设置的。有关设置方法,你应该参考操作系统文档,这里只给出一些相关提示。
在Unix和Mac OSX中,你可以在一些每次登录都要执行的shell文件内设置环境变量。如果你使用类似bash的shell文件,那么要设置的就是
.bashrc
,你可以在主目录中找到它。将下面的命令添加到这个文件中,从而将~/python
加入到PYTHONPATH:export PYTHONPATH=$PYTHONPATH:~/python
注意,多个路径以冒号分隔。其他的shell可能会有不同的语法,所以你应该参考相关的文档。
对于Windows系统,你可以使用控制面板编辑变量。依次点击开始菜单→设置→控制面板。进入控制面板后,双击 “系统” 图标,在打开的对话框中选择 “高级” 选项卡,点击 “环境变量” 按钮。这时会弹出一个分为上下两栏的对话框:其中一栏是用户变量,另外一栏是系统变量,需要修改的是用户变量。如果你看到其中已经有
PYTHONPATH
项,那么选中它,单击 “编辑” 按钮进行编辑。如果没有,单击 “新建” 按钮,然后使用PYTHONPATH
作为 “变量名”,输入目录作为 “变量值”。注意,多个目录以分号分隔。如果上面的方法不行,你可以编辑autoexec.bat文件,该文件可以在C盘的根目录下找到(假设是以标准模式安装的Windows)。用记事本(或者IDLE编辑器)打开它,增加一行设置
PYTHONPATH
的内容。如果想要增加目录C:\python,可以向下面这样做:set PYTHONPATH=%PYTHONPATH%:C:\python
注意,你所使用的IDE可能会有自身的机制,用于设置环境变量和Python路径。
提示
你不需要使用
PYTHONPATH
来更改sys.path
。路径配置文件提供了一个有用的捷径,可以让Python替你完成这些工作。路径配置文件是以.pth
为扩展名的文件,包括应该添加到sys.path的目录信息。空行和以#开头的行都会被忽略。以import开头的文件会被执行。为了执行路径配置文件,需要将其放置在可以找到的地方。对于Windows来说,使用sys.prefix
定义的目录名(可以类似于C:\Python22);在Unix和Mac OSX中则使用site-packages目录(更多信息可以参见Python库参考中site模块的内容,这个模块在Python解释器初始化时会自动导入)。