记录Idea整合Java和Python代码遇到版本问题的解决过程
@[toc]
前言
三剑客合力搞一个项目,我负责全栈,他们负责算法。新手嘛,第一次合作总是漏洞百出,前期缺少沟通,加之经验的匮乏,隐留下了许多的错误。
前段时间,在项目整合的时候,我的电脑跑不起来。因为他们用的是Python而我用的是Java,使用是Java调用Python的代码。跑不起来的原因,大体如下:
-
python版本不匹配
-
我缺少很多Python依赖
-
他们忘记了自己的依赖
-
不知道错误的真正原因
-
我前期依赖于他人解决
好在经过今天一天的努力,总算是解决了,记录一下,解决的过程吧!
总的来说,自己的事情自己做,不要总是依赖别人!
阶段一:Copy A剑客的依赖
A剑客是前期的主力军,我把我全栈的项目放到他的电脑上,Java调用Python的代码,最终跑起来了。于是他把他所有的依赖(site-package)copy给我,这时候还是没有考虑其他的因素(Python的版本号,其他种种),结果还是失败。
阶段二:B剑客解决了和我一样的问题
于是把希望寄希望于B剑客,B剑客不负所望,经过一天的努力,解决了和我一样的问题,他的代码可以跑起来了。于是乎,把他的依赖尽数Copy给我。此时,B剑客提出Python版本不兼容的问题,于是我删掉了自己原有的Python,改成了与之相应的版本。
第一次,失败。找失败的原因,可以能是没copy全
第二次再Copy详细一点。
第三次再再Copy详细一点。
最后依赖加上Python差不多6个G还是失败。
报错的原因的是DDL加载失败,还有什么numpy找不到。
在CSDN上找了很多的解决方式,都没有解决这个问题,时间兜兜转转就到了下午了。
我心一狠,算了,不弄了,我完全CopyA剑客的环境好了。B剑客也提出有可能是AnaConda的问题。
阶段三:自己尝试 照猫画虎 终于成功
第一次是B剑客传给我的MiniConda,还是有问题…忘记具体是什么原因了,我卸载了,安装了和A剑客一样的AnaConda。
第二次安装的时候,没有考虑那么多,查找到了Anaconda可以Python降级,就下载了最新版的Anaconda。然后就是在C
站查询降级的方法,最后也是成功的增加了一个版本低一点的Python环境,问题又来了—还是找不到依赖。
我心又狠,重新下载吧。
第三次下载的是2020版的,Python的版本还是高了。卸载
第四次又下载安装了2018版的,这次总算可以了,各类版本都对上了,满怀期待的运行,缺少某某依赖。下!
好了,不报这个错误了。再运行,又缺少XX依赖,好,我再来。最后兜兜转转,经过了四个小时的补漏吧,终于是跑起来了。
唉!心累,很感谢B剑客的帮助。一度我都不想搞了。
回首
这是一个很悲凉的补漏过程,如果我们一开始就能商量好环境版本,或者修改环境的时候做一个记录,那么整合起来岂不是很轻松吗?
所以下次再开发项目的时候,一定要记录环境和依赖。一定要使用git进行版本控制。我就这两个方法。不知道还有没有其他的好方法,也可以借鉴一下。
做这个项目,我学到了一个开发者要明确自己的责任,比如我是做全栈的。网页的设计就不能依赖他们俩,而是我发挥主观能动。他们搞核心算法的,不应该跟我讲算法怎么实现,而是讲为了完成这个算法,我需要做什么…
最后CSDN还是有帮助的,尽管也走了不少弯路。
期待技术越来越好吧!加油呐!
大家开发的经验,欢迎留言呐!在下虚心求教!如软件的依赖版本问题种种
- 点赞
- 收藏
- 关注作者
评论(0)