DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”

背景:

博文专栏中介绍过DICOM标准中文版书籍的协作模式DICOM:开源书籍之『DICOM标准中文版』启动计划,之所以选择看云平台目的是希望更多的各行各业的人员加入,例如英语专业非医疗从业者都十分欢迎,对翻译中的语法语言表述,甚至专业知识点进行评判修改。
对于日常工作很少使用版本管理工具的人员来说,看云的操作既简捷明了,又能很好的实现多人协作的目的。当然,如果您是一名IT从业者,已熟练使用SVN和GIT各种版本工具的人员,可以通过Github直接发起Pull requests请求,待审核通过后合并到master主线中。
本文中通过注册Github的一个测试账号zssure-test,给出使用Github的Pull Request来完成DICOM3.0中文版开源书籍翻译的协作的具体实例,详情如下。

Windows 7环境使用Git Bash提交代码到Github

下面就介绍一下如何在Windows 7环境下直接使用git bash,以ssh方式提交代码到github。
1. 下载安装msysgit:该部分与Windows环境下常见的软件安装相同,一直单击”下一步”即可完成安装。详情可参考百度经验:如何在windows下安装GIT,或者参考专栏之前的博文利用hexo构建自己的Github主页
2. 生成ssh-key。在成功安装msysgit后可以进入git bash(此时Path环境变量已经自动指向了默认的安装目录C:\Program Files (x86)\Git\cmd),参照github官方文档生成ssh-key
2.1. 输入ssh-keygen -t rsa -b 4096 -C “zssure-test@163.com”生成SSH的公钥密钥文件。

这里写图片描述

3. 添加生成的key到ssh-agent。
【注】:这一步要额外注意,直接参照官方文档中的ssh-agent -s,以及ssh-add 会弹出“Could not open a connection to your authentication agent.”的错误提示
此处msysgit环境启动ssh-agent需要用到C:\Program Files (x86)\Git\cmd安装目录下的 start-ssh-agent.cmd批处理命令。
这里写图片描述

不过此时默认添加并非是刚才我们生成的key,因此注意下面先清空ssh-key,再添加我们自己的key。
这里写图片描述

4. 将id_rsa.pub的内容拷贝到github的Setting下的SSH keys子项,注意id_rsa.pub的打开方式,要确保不出现乱码,并完全拷贝其内容。
【注】:为了避免打开文件方式有误,可以在cmd命令行下使用clip命令拷贝id_rsa.pub内容,具体指令为:clip < id_rsa.pub
这里写图片描述

5. 上传代码到github。最后就是提交代码了,这里为了方便,直接从github上clone已有的DICOM-Chinse开源书籍仓库。修改其中的README.md内容后,在使用git bash提交。详细的操作指令如下:

git clone git@github.com:zssure-test/DICOM-Chinese.git
git config user.name "zssure-test"
git config user.email "zssure@163.com"
git config --local
#此处任意修改README.md的内容
git status #查看修改状态
git add . #添加所有修改
git commit -m "zssure git bash test" #提交修改到本地仓库
git push origin master #push修改到github

说明1:Github提交方式:

上述过程中需要注意的是git clonegit push阶段使用的仓库连接都是SSH类型的连接。在Github的仓库主页右侧有三种连接方式:HTTPS、SSH、Subversion。关于该三种方式的详细介绍参见官方说明Which remote URL should I use?

这里写图片描述

说明2:问题排查:

之前参照了网络上诸多解决方案(详情参见博文最后的链接),在本地测试时一直出现问题,不是无法创建ssh-key,就是无法连接github。后来仔细排查了一下(查看环境变量),确定了本地git bash以及ssh的安装环境。在默认的cmd命令行下使用的是C:\Program Files (x86)\Git\cmd路径下的git.exe。而C:\Program Files (x86)\Git\bin目录下的ssh工具对应的目录是C:\Program Files (x86)\Git.ssh而非默认的C:\Users\Administrator.ssh目录
【注】:后来发现本地之所以出现该目录是因为安装Github for Windows客户端时生成的,文件夹下面还有默认生成的github_rsa和github_rsa.pub,虽然Github客户端会生成ssh-key,但是其客户端登录时并未使用,官方说明参见下图:

这里写图片描述

Github的Pull Requests协同编辑:

操作步骤

github支持多人协作,因此对于IT从业者,可以使用github提供的pull requests功能参与DICOM标准中文版开源项目。具体的操作流程比较简单,主要分为以下几步:
1. 注册github账号,搜索DICOM-Chinese仓库

这里写图片描述

2. fork搜索到的DICOM-Chinese仓库到自己的github账号,如下图所示:
这里写图片描述

3. 使用Github for Windows客户端或者git bash将fork后的DICOM-Chinese仓库下载到本地进行个人的修改、提交,此处即可使用上述提到的git bash用SSH方式提交修改到github。
你当前安装的 `nnunet` 版本是 **1.7.1**,这是相对较新的版本,理论上应该支持 `Standard3DPlanner`。然而你仍然遇到了如下错误: ``` ImportError: cannot import name &#39;Standard3DPlanner&#39; from &#39;nnunet.experiment_planning&#39; ``` --- ## 🔍 问题分析 ### ✅ 1. `Standard3DPlanner` 并不在 `nnunet.experiment_planning.__init__.py` 中直接导出 在 **nnU-Net v1.7.1** 中,`Standard3DPlanner` 实际上位于: ``` nnunet/experiment_planning/experiment_planner_3d_to_2d.py ``` 也就是说,你不能这样导入: ```python from nnunet.experiment_planning import Standard3DPlanner # ❌ 错误 ``` 而应该这样导入: ```python from nnunet.experiment_planning.experiment_planner_3d_to_2d import Standard3DPlanner # ✅ 正确 ``` --- ## ✅ 解决方案 ### ✅ 方法 1:使用完整路径导入 ```bash python3 -c "from nnunet.experiment_planning.experiment_planner_3d_to_2d import Standard3DPlanner; print(Standard3DPlanner)" ``` 如果输出如下,说明导入成功: ``` <class &#39;nnunet.experiment_planning.experiment_planner_3d_to_2d.Standard3DPlanner&#39;> ``` --- ### ✅ 方法 2:升级到 nnU-Net v2.0+ 虽然你当前使用的是 v1.7.1,但 `Standard3DPlanner` 在 v2.0+ 版本中被更广泛使用,并且导入方式更统一。 你可以使用以下命令安装 GitHub 上的最新开发版(推荐): ```bash pip install git+https://github.com/MIC-DKFZ/nnUNet.git ``` > ⚠️ 注意:升级到 v2.0+ 后,部分命令和配置方式可能与 v1.x 不兼容,建议备份数据。 --- ## ✅ 查看 nnU-Net 支持的所有 planner 你可以运行以下命令查看当前版本中有哪些 planner 可用: ```bash find /home/jzuser/.local/lib/python3.10/site-packages/nnunet/experiment_planning -name "*planner*.py" ``` 输出示例: ``` nnunet/experiment_planning/experiment_planner_3d_to_2d.py nnunet/experiment_planning/experiment_planner_2d.py nnunet/experiment_planning/experiment_planner_3d_patched.py ``` 你可以尝试导入这些模块中的 planner 类。 --- ## ✅ 示例:使用正确的 planner 运行预处理 如果你使用的是 v1.7.1,可以这样运行: ```bash nnUNet_plan_and_preprocess -t 3 --planner3d nnunet.experiment_planning.experiment_planner_3d_to_2d.Standard3DPlanner --planner2d None ``` > ✅ 注意:你可以在命令中使用完整的类路径。 --- ## ✅ 总结流程 | 操作 | 命令 | 说明 | |------|------|------| | 查看当前版本 | `pip show nnunet` | 版本为 1.7.1 | | 查找 planner 所在文件 | `find ... -name "*planner*.py"` | 找到 `experiment_planner_3d_to_2d.py` | | 正确导入 planner | `from nnunet.experiment_planning.experiment_planner_3d_to_2d import Standard3DPlanner` | ✅ 成功 | | 使用 planner 运行预处理 | `nnUNet_plan_and_preprocess -t 3 --planner3d nnunet.experiment_planning.experiment_planner_3d_to_2d.Standard3DPlanner` | ✅ 成功 | --- ##
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zssure

己欲立而立人,己欲达而达人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值