os.path和sys.path区别和在vscode里面设setting.json可以直接导入在 src 目录下或者工作区根目录下的模块,而无需将这些目录添加到 sys.path 中或使用相对导入
- os.path 主要用于处理和操作文件路径
- sys.path 则用于指定 Python 查找模块的路径
import sys
print(sys.path)
sys.path.append('/path/to/directory')
设置setting.json :https://blog.csdn.net/m0_52664342/article/details/130791739
在python环境变量中预先指定模块位置,这些目录自动包含在sys.path中,无需使用相对导入 from.import mymodule 或者from … import anothermodule,PYTHONPATH 后,你可以直接使用绝对导入(例如 from mymodule import MyClass)而不需要考虑当前文件的位置。(配置方法:打开运行和调试->创建lauch.json 然后里面修改,修改后laucn.json会位当前文件所在目录的.vscode下面,工作区配置会覆盖全局配置,这样在特定项目中每次启动时都会使用工作区中的配置)
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"cwd": "${fileDirname}",
"env": {"PYTHONPATH": "${workspaceFolder};${workspaceFolder}/src"}
}
]
}
结构为
my_project/
├── .vscode/
│ └── launch.json
这样,我在src中有一个名为mymodule.py文件 可以在任何python文件中这样写导入它:
from mymodule import MyClass
关于这个配置文件的解释:
这个 JSON 配置文件是用来配置 Python 的调试器,通常是在 Visual Studio Code (VSCode) 中使用的 launch.json
文件的一部分。以下是各个部分的具体意义:
-
version: 表示配置文件的版本。在这里是 “0.2.0”,这通常是一个约定,不影响具体的调试设置。
-
configurations: 这是一个数组,可以包含多个调试配置。在这个例子中,只有一个配置。
-
name: 配置的名称。这里是 “Python: Current File”,表示该配置将用于调试当前打开的 Python 文件。
-
type: 表示调试类型。在这里是 “python”,指明这是一个 Python 调试配置。
-
request: 指定请求类型。这里是 “launch”,表示要启动一个新的调试会话。
-
program: 指定要调试的程序。
${file}
是一个变量,表示当前打开的文件。 -
console: 指定调试时使用的终端类型。这里是 “integratedTerminal”,表示在集成的终端中运行,而不是外部终端。
-
justMyCode: 这是一个布尔值,设置为
true
表示只调试用户编写的代码,而忽略库或框架代码。 -
cwd: 指定调试时的当前工作目录。
${fileDirname}
变量表示当前文件所在的目录。 -
env: 此字段设置环境变量。在这里,它设定了
PYTHONPATH
,指向工作区文件夹和src
目录。它允许在调试期间 Python 解释器找到模块和包。
总的来说,这个配置文件使得在 VSCode 中可以方便地调试 Python 程序,同时提供了一些特定的调试选项和环境配置。
一个典型的python项目结构:
my_project/
│
├── src/
│ ├── mymodule.py
│ └── anothermodule.py
│
├── tests/
│ └── test_mymodule.py
│
├── requirements.txt
├── README.md
└── setup.py