记录Idea整合Java和Python代码遇到版本问题的解决过程

举报
游坦之 发表于 2022/10/10 11:21:43 2022/10/10
【摘要】 @[toc] 前言​ 三剑客合力搞一个项目,我负责全栈,他们负责算法。新手嘛,第一次合作总是漏洞百出,前期缺少沟通,加之经验的匮乏,隐留下了许多的错误。​ 前段时间,在项目整合的时候,我的电脑跑不起来。因为他们用的是Python而我用的是Java,使用是Java调用Python的代码。跑不起来的原因,大体如下:python版本不匹配我缺少很多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还是有帮助的,尽管也走了不少弯路。

​ 期待技术越来越好吧!加油呐!

大家开发的经验,欢迎留言呐!在下虚心求教!如软件的依赖版本问题种种

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。