我可以更改python首先查找模块的顺序吗?

时间:2012-10-26 07:58:13

标签: python import

想象一下,我有一个脚本,假设my_tools.py我作为模块导入。但是my_tools.py会被保存两次:C:\Python27\Lib 并且在运行脚本的同一目录中执行导入。

我可以先更改python查找my_tools.py的顺序吗?也就是说,首先检查它是否存在于C:\Python27\Lib,如果存在,是否进行导入?

3 个答案:

答案 0 :(得分:4)

您可以根据需要操作sys.path ...如果您想最后移动当前目录以进行扫描,那么只需执行sys.path[1:] + sys.path[:1]。否则,如果你想深入了解细节,那么可以使用imp module进行自定义,直到你满意为止 - 这个页面上有一个例子,http://blog.dowski.com/2008/07/31/customizing-the-python-import-system/

答案 1 :(得分:3)

您可以修改sys.path,这将确定Python搜索导入的顺序和位置。 (请注意,您必须在导入语句之前执行此操作。)

答案 2 :(得分:2)

如果你不想让python搜索内置模块,那么首先在当前文件夹中搜索,

您可以更改sys.path

upon program startup, the first item of this list, path[0], is the directory containing the script that was used to invoke the Python interpreter

sys.path[0] is the empty string, which directs Python to search modules in the current directory first,您可以将其放在列表的末尾,这样它将首先在所有可能的位置搜索,然后再转到当前目录