Explore Python module automatic search paths
本篇文章给大家带来的内容是关于探索Python模块自动搜索路径,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
最近在学习python的C++扩展(pybind11),写完一个扩展模块之后,想要在自己的环境中以后都能自动导入这个模块,而不用手动去添加路径(修改sys.path)应该怎么弄?以前最开始学习Python的时候看过这块内容,然而时间长了总会记忆不清,就再回顾了一遍。
概括来说,Python的自动搜索路径是这样的:
程序的根目录
PYTHONPATH环境变量设置的目录
标准库的目录
任何能够找到的.pth文件的内容
第三方扩展的site-package目录
最终,这五个部分的拼接成为了sys.path,其中第一和第三、第五部分是自动定义的。
根目录(自动)
Python首先在根目录搜索要导入的文件。这个根目录的入口依赖于你怎么运行代码;当你运行一个程序时,这个入口就是程序运行入口(top-level script file)文件所在的目录;当你用交互式窗口期运行代码时,这个入口就是你所在的工作目录。
PYTHONPATH 目录(可配置的)
接下来,python会搜索PYTHONPATH环境变量里列出的所有目录,因为这个搜索在标准库之前,所以要小心不要覆盖一些标准库的同名模块。
标准库目录(自动)
这个没什么好说的,pyton会自动搜寻标准库模块所在的目录。
.pth文件列出的目录(可配置的)
这是用的比较少的一个python特性。它允许用户以每行一个的方式列出搜索路径,它和PYTHONPATH环境变量的不同是会在标准库路径之后搜索;而且它是针对这个python安装的,而不是针对用户的(环境变量会随着用户的不同而不同)。 那么,.pth文件应该放在哪里呢?可以通过以下代码找到.pth文件可以放置的位置:
import site site.getsitepackages()
在我的环境中,输出如下:
['C:\\Python27', 'C:\\Python27\\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
,里面都写了一个test
方法。
我们打开交互解释器,结果如下:
可以看到,我们可以直接导入这两个目录下的模块了。查看sys.path:
嗯,这两个路径已经自动加入sys.path变量了。
总结
本文简要回顾了python的自动搜索路径,以及如何配置一些搜索路径以使得python在启动时能够将某些目录加到搜索路径。当然,这些自动搜索路径随着python版本和实现的不同会有细微差别,但对于目前的使用来说已经够了。
The above is the detailed content of Explore Python module automatic search paths. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



VS Code can run on Windows 8, but the experience may not be great. First make sure the system has been updated to the latest patch, then download the VS Code installation package that matches the system architecture and install it as prompted. After installation, be aware that some extensions may be incompatible with Windows 8 and need to look for alternative extensions or use newer Windows systems in a virtual machine. Install the necessary extensions to check whether they work properly. Although VS Code is feasible on Windows 8, it is recommended to upgrade to a newer Windows system for a better development experience and security.

VS Code extensions pose malicious risks, such as hiding malicious code, exploiting vulnerabilities, and masturbating as legitimate extensions. Methods to identify malicious extensions include: checking publishers, reading comments, checking code, and installing with caution. Security measures also include: security awareness, good habits, regular updates and antivirus software.

In VS Code, you can run the program in the terminal through the following steps: Prepare the code and open the integrated terminal to ensure that the code directory is consistent with the terminal working directory. Select the run command according to the programming language (such as Python's python your_file_name.py) to check whether it runs successfully and resolve errors. Use the debugger to improve debugging efficiency.

VS Code can be used to write Python and provides many features that make it an ideal tool for developing Python applications. It allows users to: install Python extensions to get functions such as code completion, syntax highlighting, and debugging. Use the debugger to track code step by step, find and fix errors. Integrate Git for version control. Use code formatting tools to maintain code consistency. Use the Linting tool to spot potential problems ahead of time.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

Golang is more suitable for high concurrency tasks, while Python has more advantages in flexibility. 1.Golang efficiently handles concurrency through goroutine and channel. 2. Python relies on threading and asyncio, which is affected by GIL, but provides multiple concurrency methods. The choice should be based on specific needs.

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

VS Code is the full name Visual Studio Code, which is a free and open source cross-platform code editor and development environment developed by Microsoft. It supports a wide range of programming languages and provides syntax highlighting, code automatic completion, code snippets and smart prompts to improve development efficiency. Through a rich extension ecosystem, users can add extensions to specific needs and languages, such as debuggers, code formatting tools, and Git integrations. VS Code also includes an intuitive debugger that helps quickly find and resolve bugs in your code.
