寻找路径算法,获取当前路径 python

  寻找路径算法,获取当前路径 python

  最近学了python的C扩展(pybind11),写了一个扩展模块,想在自己的环境中自动导入这个模块,不需要手动添加路径(修改sys.path)。我该怎么办?刚开始学Python的时候看过这一段内容,时间长了记不太清楚了,就又复习了一遍。

  综上,Python的自动搜索路径是这样的:

  程序根目录PYTHONPATH环境变量set目录标准库目录任意内容。可以找到的pth文件第三方扩展site-package目录最后这五个部分拼接成sys.path,其中第一、三、五部分自动定义。根目录(自动)

  Python首先在根目录中搜索要导入的文件。这个根目录的条目取决于您如何运行代码;wzdlz运行程序时,该条目是程序运行条目(顶层脚本文件)文件所在的目录;当wzdlz在交互式窗口中运行代码时,这个条目就是您的工作目录。PYTHONPATH 目录(可配置的)

  接下来,python将搜索PYTHONPATH环境变量中列出的所有目录。因为这个搜索在标准库之前,所以注意不要覆盖标准库中的一些同名模块。标准库目录(自动)

  这个没什么好说的。pyton将自动搜索标准库模块所在的目录。.pth文件列出的目录(可配置的)

  这是一个很少使用的python特性。它允许用户每行列出一个搜索路径,这与PYTHONPATH环境变量不同,它将在标准库路径之后进行搜索;并且它是为这个python安装的,而不是为用户安装的(环境变量会因用户而异)。那么这个。pth文件被放置?您可以找到。pth文件可以由下面的代码放置:

  Importsite.getsitepackages()在我的环境中,输出如下:

  [C:\\Python27 , C:\ \ python 27 \ \ lib \ \ site-packages ]Lib/site-package目录(自动)

  最后,python会自动将site-packages目录添加到搜索路径中,这一般是安装第三方扩展的地方,一般由distutils工具发布。

  说明就这么多,现在来举个小栗子。我的python环境是windows7 python 2.7。

  1.首先,我们创建一个新的环境变量PYTHONPATH、一个安静的冰激凌和一个目录E:\python_extensions。

  然后,我们在目录C:\Python27中添加一个add.pth文件,该文件包含以下内容:E:\python_extensions2。最后,我们分别在目录E:\python_extensions和E:\python_extensions2中创建新的模块test.py和test2.py,并在其中编写测试方法。

  我们打开交互式解释器,结果如下:

  如您所见,我们可以直接导入这两个目录中的模块。检查sys.path:

  嗯,这两条路径已经自动添加到sys.path变量中。

  本文简要回顾了python的自动搜索路径,以及如何配置一些搜索路径,使python可以在启动时向搜索路径添加一些目录。当然,这些自动搜索路径会因python版本和实现而略有不同,但对于当前的使用来说已经足够了。

  《Learning Python, 5th Edition》,第22章:模块:大图,模块搜索路径。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: