Windows数据科学环境搭建:避坑与高效配置实战
|
去年六月份搭Windows数据科学环境那会儿,我原以为装个Anaconda配个PyCharm就完事儿了,结果被CUDA和TensorFlow的版本冲突按在地上摩擦了俩小时——风扇一直在转,屏幕上的报错行数跳得比心跳还快,开发小王路过问了句“好了没”,我盯着那堆红字没敢吭声。 说真的,Windows下搞数据科学环境,最坑的不是安装包本身,是那些“理论上兼容”的依赖链。比如你装PyTorch 2.0,它非拽着CUDA 11.7,可你显卡驱动是528.47版,这时候NVIDIA控制面板里显示的驱动版本和CUDA Toolkit里写的版本能差出三个大版本——我试过手动改注册表,结果系统直接蓝屏,重启后发现C盘多出俩GB的临时文件,全是NVIDIA的崩溃日志。 开发组那帮人还总说“用Linux啊”,可领导坚持要用Windows,说“财务的Excel插件只能在Win上跑”。我后来悟了,这环境搭建的优胜劣汰,根本不是技术问题,是“谁更会甩锅”的问题——比如上周三,我装Jupyter Notebook时勾选了“Add to PATH”,结果导致所有Python脚本的shebang行都得手动改,运维老张路过瞥了眼屏幕,说“你这PATH长度都快赶上我的工资条了”。
文章配图,仅供参考 说到PATH,Windows的这玩意儿简直是个黑洞。我原以为把Anaconda的Scripts目录加进去就万事大吉,结果发现conda activate根本不生效——查了半天才发现,系统环境变量里的Path被某个旧版Python的安装程序截胡了,那货居然在用户变量里塞了二十多个路径,每个都带着“Python27”的字样,活像埋了二十颗地雷。外卖凉了的时候,我终于找到个偏方:把Anaconda的安装目录从“Program Files (x86)”挪到“D:\”,因为带空格的路径能让conda.bat直接罢工。搬完家重新配置时,窗外天都黑了,开发小王发消息问“进度”,我回了个“在改PATH”,他秒回“那明天再说吧”——后来才知道,他趁这空儿去打了把王者。 最离谱的是虚拟环境。我按官方文档用conda create -n myenv python=3.9,结果激活后pip install numpy报错“Microsoft Visual C++ 14.0 is required”。我装了VC++ 2015、2017、2019三个版本,还是不行——后来发现是系统变量里的INCLUDE路径被某个旧版VS篡改了,那路径里居然混着“VC9”和“VC11”的目录,活像把不同年代的零件拼成了一辆自行车。 运维老张有次跟我说,他见过更绝的:有人用PowerShell装包,结果因为执行策略是Restricted,所有pip命令都被拦截,改策略时手抖把Set-ExecutionPolicy Unrestricted打成了Set-ExecutionPolicy Unrestricted -Force,直接把系统脚本权限全开了——后来那台机器成了部门里的“公共测试机”,谁装奇怪软件都往那儿扔。 现在回头看,Windows数据科学环境搭建的“优胜劣汰”,其实拼的是对系统细节的熟悉程度。比如我知道conda activate后,得用where python确认路径;知道装PyTorch时得先卸载所有旧版CUDA;知道Jupyter Notebook的kernelspec得手动指定Python解释器路径——这些破事儿,Linux下根本不会遇到,可谁让领导说“财务的Excel插件只能在Win上跑”呢? 上周五,我试着用WSL2装Ubuntu,结果发现GPU加速得装NVIDIA Container Toolkit,那玩意儿又得配docker-ce,装完发现WSL2的GPU支持在Windows 11上才稳定——我盯着那堆“experimental feature”的警告,突然觉得,或许真正的“优胜劣汰”,是看谁先说服领导换台Mac。 下一步我打算写个批处理脚本,自动检测PATH里的重复项,再把所有依赖的VC++版本打包成ZIP——不过领导昨天说“下季度要上Hadoop集群”,我估摸着,这脚本可能得等财务的Excel插件能跑在Linux上了再写。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Windows运行库高效管理:7年测试工程师的稳定开发环境实践
Windows站点环境搭建中3个被忽略的安全断点