sys.path中没有项目根目录
在复现3DUnetCNN时,在项目根目录下:
D:\project\PytorchProject\3DUnetCNN> python unet3d/scripts/train.py --config_filename examples/brats2020/brats2020_config.json
但是报错:
Traceback (most recent call last):
File "D:\project\PytorchProject\3DUnetCNN\unet3d\scripts\train.py", line 23, in <module>
from unet3d.train import run_training
ModuleNotFoundError: No module named 'unet3d'
原因:Python 启动时,会按以下顺序填充 sys.path,导入模块时也会按这个顺序查找(找到即停止):脚本所在目录,PYTHONPATH 环境变量,Python 内置的 site-packages等。
因此sys.path中会加入train.py脚本所在目录(D:\project\PytorchProject\3DUnetCNN\unet3d\scripts),但是没有项目根目录(D:\project\PytorchProject\3DUnetCNN)
# 1. 打印当前目录
print(f"终端当前目录(os.getcwd()):{os.getcwd()}")
# 2. 打印「sys.path」的搜索路径
print("\nPython 的 sys.path 列表:")
for i, path in enumerate(sys.path):
print(f" {i}: {path}")
# 3. 检查当前目录是否在 sys.path 中
cwd_in_sys_path = os.getcwd() in sys.path
print(f"\n当前目录是否在 sys.path 中:{cwd_in_sys_path}")
终端当前目录(os.getcwd()):D:\project\PytorchProject\3DUnetCNN
Python 的 sys.path 列表:
0: D:\project\PytorchProject\3DUnetCNN\unet3d\scripts
1: D:\software\Anacanda3\envs\pytorch\python310.zip
2: D:\software\Anacanda3\envs\pytorch\DLLs
3: D:\software\Anacanda3\envs\pytorch\lib
4: D:\software\Anacanda3\envs\pytorch
5: D:\software\Anacanda3\envs\pytorch\lib\site-packages
6: D:\software\Anacanda3\envs\pytorch\lib\site-packages\win32
7: D:\software\Anacanda3\envs\pytorch\lib\site-packages\win32\lib
8: D:\software\Anacanda3\envs\pytorch\lib\site-packages\Pythonwin
当前目录是否在 sys.path 中:False
因此,在train.py最前面添加:
import sys
sys.path.append(r"D:\project\PytorchProject\3DUnetCNN")
springboot框架
springboot项目创建
(1)JDK1.8,java8,添加Spring Web、thymeleaf(如果是前后端不分离,加上这个)依赖,create之后,配置Maven,运行BackendApplication.java文件
(2)一个地址栏中的url对应一个函数
- 前后端不分离实例(用的@Controller,而前后端分离用@RestController):
函数index()对应127.0.0.1:8080/pk/index/
@Controller
@RequestMapping("/pk/")
public class IndexController {
@RequestMapping("index/")
public String index() {
return "pk/index.html";
}
}
在浏览器输入网址127.0.0.1:8080/pk/index/(注意最后有/,因为后端是index/,如果不想要有/则后端改为index),输出resources/templates/pk/index.html中的内容
- 前后端分离(@RestController = @Controller + @ResponseBody)
返回值处理方式 @Controller: 返回字符串时被视作视图名称(模板名称) 需要手动添加 @ResponseBody 才能返回 JSON/文本数据 @RestController: 所有方法默认返回数据内容,直接写入响应体 适合构建 RESTful API 接口
@RestController
@RequestMapping("/pk/")
public class BotInfoController {
@RequestMapping("getbotinfo/")
public String getBotInfo() {
return "hhhhh";
}
}
在浏览器输入网址127.0.0.1:8080/pk/getbotinfo/
JavaScript
本 JavaScript 笔记全程基于 ES6(ECMAScript 2015)标准编写,涵盖 let/const 变量声明、箭头函数、模块化、Promise、class 类等核心特性,所有示例与知识点均遵循 ES6 语法规范,贴合现代前端开发主流实践。
MDN官方文档:https://developer.mozilla.org/zh-CN/
25 post articles, 4 pages.