sys 模块内置在每一个Python 解析器中。
变量sys.ps1 和 sys.ps2定义了主提示符和副提示符对应的字符串。
```
>>> import sys
>>> sys.ps1
'>>> '
>>> sys.ps2
'... '
>>> sys.ps1 = 'C> '
```
## sys.path
`sys.path`是 Python 的一个运行时变量,它是一个字符串列表,指示了解释器在导入模块时应该搜索哪些路径。当你导入一个模块时,Python 解释器会在`sys.path`所列出的目录中查找对应的`.py`文件。
通常情况下,`sys.path`包括以下几个路径:
1. 当前脚本运行的目录(或在交互模式下是当前工作目录)。
2. `PYTHONPATH`环境变量中指定的目录(如果设置了的话)。
3. Python默认的安装路径(即标准库的安装位置)。
你可以在 Python 脚本中查看`sys.path`的当前值:
~~~
pythonCopy codeimport sys
print(sys.path)
~~~
你也可以通过修改`sys.path`来更改模块的搜索路径。例如,你可以将你的项目路径或需要导入的模块目录添加入`sys.path`:
~~~
pythonCopy codeimport sys
sys.path.append('/path/to/your/module/directory')
~~~
不过,这种修改是在运行时进行的,它只会影响当前运行的 Python 进程,并且不会影响其他 Python 脚本或会话中的`sys.path`值。
一个更永久性的方式是设置`PYTHONPATH`环境变量,这样每次运行 Python 时它都会生效。这个环境变量的设置方法取决于你的操作系统。
**注意**:在生产系统中修改`sys.path`可能不是最佳实践,因为它可能会引入路径硬编码和依赖问题。正确配置虚拟环境和使用包管理工具(如 pip)通常是更好的做法。
## 路径符
在 Windows 系统中,Python的`sys.path`变量包含一个路径列表,Python解释器将从这些路径中搜索模块。路径字符串通常使用 Windows 路径约定,即使用反斜杠`\`作为目录分隔符。不过,由于反斜杠在 Python 字符串中是一个转义字符,因此你通常需要使用原始字符串(以`r`开头)或者在每个反斜杠前再加一个反斜杠来转义它。
例如:
~~~
pythonCopy code# 使用原始字符串来避免需要转义反斜杠
sys.path.insert(0, r'C:\path\to\your\module')
# 或者使用双反斜杠
sys.path.insert(0, 'C:\\path\\to\\your\\module')
~~~
Python 也支持在 Windows 路径中使用正斜杠`/`作为目录分隔符,并且不需要转义:
~~~
pythonCopy code# 使用正斜杠
sys.path.insert(0, 'C:/path/to/your/module')
~~~
在许多情况下,使用正斜杠作为路径分隔符可能是跨平台脚本编写的更简单选择,因为它在 Unix 和 Windows 环境下都被支持。
另外,如果你在设置路径时使用了相对路径,请确保你运行脚本的当前工作目录是你预期的目录,因为相对路径会根据当前工作目录解析。如果可能,使用绝对路径会使事情变得更清晰明确。
- 前言
- 1.入门篇
- Python介绍
- 安装与使用
- Python开发利器之VS Code
- 模块安装
- 命令行
- 一次Python无法安装模块的问题探索与解决之旅
- 命令运行
- Conda
- 下载地址
- 2.基础篇
- 基础语法
- 输入与输出
- with as的用法
- 注释
- Python命令行参数
- 编码
- 变量类型
- 列表遍历
- 运算符
- 表达式语句
- 条件
- 循环
- 日期和时间
- 函数
- 高级语法
- @符号-装饰器
- 模块和包
- name
- init.py
- 错误和异常
- 面向对象
- 3.专题篇
- 常用功能
- Python 字符串连接
- python web
- Python CGI编程
- Python OAuth2
- 认证 Flask-HTTPAuth
- 常用命令
- 内置函数
- dir()
- print(f)
- 标准模块
- sys
- pickle-数据序列化
- os
- IO(输入输出)
- 键盘输入
- 文件读写
- 测试
- Python测试框架之pytest快速入门
- pytest-bdd快速示例和问题解决
- 基于pytest-bdd的项目目录结构和命名规范
- python BDD 的相关概念
- Behave介绍和快速示例
- Python BDD之Behave测试报告
- Python BDD 框架比较之 pytest-bdd vs behave
- pytest进阶
- Flask + pytest测试
- 参考网址
- pytest-bdd进阶
- hehave进阶
- 测试路径
- python + selunium
- HTML 根据多层CSS 查找元素
- 等待执行
- 使用text 查找 span
- pytest如何在控制台输出
- 4.问题篇
- pip pip3 及区别
- TypeError: can only concatenate str (not "NoneType") to str
- 5.实战篇
- matplotlib-绘图包
- 导入类
- 命名规范
- 模块查找
- 6.进阶篇
- Flask
- Flask介绍
- Flask扩展模块
- Flask-Login
- 问题
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask实战
- Flask 标准目录结构
- Blueprints
- 参考
- FastAPI 测试
- https 证书 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate