加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.024zz.com.cn/)- 区块链、CDN、AI行业应用、人脸识别、应用程序!
当前位置: 首页 > 搭建环境 > Windows > 正文

Windows数据科学环境搭建:避坑与高效配置实战

发布时间:2026-10-17 14:07:42 所属栏目:Windows 来源:DaWei
导读:  去年10月,我蹲在客户机房第三排靠窗那台ThinkPad E14旁边,盯着conda install -c conda-forge xgboost跑了一小时十七分钟还没到dependency solving阶段。窗外在下雨,雨点斜着砸在灰玻璃上,像一串串没跑通的测试用例。

  去年10月,我蹲在客户机房第三排靠窗那台ThinkPad E14旁边,盯着conda install -c conda-forge xgboost跑了一小时十七分钟还没到dependency solving阶段。窗外在下雨,雨点斜着砸在灰玻璃上,像一串串没跑通的测试用例。隔壁工位老张接了个电话,说了句“对,pip清华源现在连不上”,就把听筒搁回座机时碰倒了半罐红牛,糖浆顺着键盘缝往下淌,滴在USB-C拓展坞接口上——我原以为是电源不稳导致mamba update卡死,结果拆开看,是他上周用热熔胶粘过HDMI口,胶水溢进PD供电芯片焊点,压根不是环境问题。


  那个下午我一共重装了四次Miniconda3,两次手动删C:\\Users\\XXX\\AppData\\Local\\Continuum,一次连Registry都清了,还留着个HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.py\\OpenWithList\\a,指向一个早就卸载掉的VS Code旧快照。你猜怎么着?conda activate py311-ds第一次成功居然是因为我在PATH里误删了某个Python 2.7残骸路径——它居然靠“缺失”才跑通。优胜劣汰?真不是修辞。是Windows注册表里三百七十二个Python相关键值,活着的那二十个全靠别人挂掉腾出空间。


文章配图,仅供参考

  我桌上那盒沙县蒸饺凉透了,韭菜馅结成青灰色薄痂。小王从茶水间端着泡面过来,把叉子插进我显示器支架散热孔里,边搅面边说:“你非得用WSL2跑jupyter lab?直接下Anaconda Navigator点点点不行?”我没理他。十秒后他叉子掉了,面条甩在Dell U2723DX屏幕上,油星混着指纹,反光里映出我正在敲的命令:wsl --set-version Ubuntu-22.04 2 —— 结果终端回显Permission denied,因为Hyper-V服务被集团组策略硬禁了,而策略更新周期是七十二小时。我就坐那儿,叉子还悬在半空,面汤顺着桌沿往下渗,滴进主机USB-A口旁边的灰尘堆里,积成一小坨褐色丘陵。


  有次为了调通一个PyTorch+ONNX的导出链,我把CUDA Toolkit换过三版,nvcc -V输出对得上,nvidia-smi也亮着,可torch.cuda.is_available()就是False。最后发现是显卡驱动自带的那个“NVIDIA Container Toolkit”服务,开机自启但默认停着,且日志里根本不会报错——它就安静地躺在services.msc里,像块没盖章的补丁。我敢打包票:你只要动过NVIDIA控制面板里的“首选图形处理器”选项,哪怕只是点开又关掉,.local/share/virtualenvs/下所有CUDA-aware虚拟环境就全得重建。这个,百分百。


  李工推门进来时拎着个保温袋,说楼下瑞幸新上了黑芝麻麻薯杯,我伸手去接,他忽然把袋子往右偏三十度,我手指擦过纸袋边缘,摸到一粒没化开的芝麻。他指着我屏幕上的requirements.txt问:“你为啥还在写-e git+ssh://git@xxx#subdirectory=src&egg=xgboost-cu118”?我说因为官方conda-forge包缺CuPy后端支持。他说:“哦,那你删掉第7行。” 我删了。pip install完,import xgboost报错找不到libcurand.so。再翻GitHub issue,才发现那人三年前提过同一问题,PR被maintainer标为“wontfix”,理由是“Windows不属本项目支持范围”。——这句我信。真不属。


  那天收工前我把WSL2里的Ubuntu全盘导出tar,备份到D盘,压缩包名起成20231026_2147_py311ds_wsl2.tar。U盘插在左USB-A口,鼠标垫右下角卷起一道毛边,沾着之前沙县蒸饺掉的碎屑。导出进度条走到98%时弹窗提示:“磁盘空间不足(D:\\)”,我看了一眼D盘,还剩5.7GB,够存两个完整Win11镜像。我点了“继续”,它继续卡住。十五分钟后我拔U盘,换到右USB-A口重试,进度条瞬间跳到100%。没人知道为什么。驱动?固件?还是那块金士顿U盘出厂时左边接口镀层比右边厚零点三微米?我说不准。


  前两天又看见有人在群里晒截图:VS Code里Python解释器选中路径显示“…/miniconda3/envs/ds/bin/python.exe”。我截了屏发过去,在评论区打字:“兄弟,那是WSL里路径,你Windows本体根本读不到。你现在运行的全是WSL终端转发的假信号。” 发完我就关了群。后来想起来,昨天中午食堂打饭时,窗口阿姨把我的梅菜扣肉多舀了一勺,肥肉堆成小山,油亮亮反光。她手没抖,勺也没晃,可那一勺肉的位置,恰好盖住了餐盘编号牌上的“E23”两个数字——就像所有看似稳固的数据科学栈,其实永远有一块没校准的像素,在你转身倒水的半秒钟里,它正悄悄漂移。


  我现在改用Mambaforge+Poetry做环境隔离,GPU相关模块全部封装进Docker Desktop的WSL2 backend,本地只跑pytest和pre-commit。别的,不碰。今天下班前要把公司邮箱密码重置流程跑通,听说IT刚上线新SSO,登录页有个加载动画转了十八秒。我不确定要不要等它转完。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!