一 问题
为啥突然有这篇推文呢?主要是最近在用服务器运行一些程序的时候出现了以下情形:
哎,明明上次这个脚本还能运行的,为啥这次突然不行?
脚本没问题呀,也没有修改过
明白了,上次运行其他程序时又装了新的包
错误是部分包升级了,那降级就好了
...(过了许久)...
经过九九八十一难,终于降级成功
成功运行,也耗费了半天时间
因此,才出现这一篇推文,也想着为读者们提供一点借鉴的意义。
二 解决方案
其实,这个问题共有五种解决方案:
第一种:不停的升级降级,如下文。优点是不用考虑其他,缺点是比较费时
第二种:将包安装到指定目录,本文介绍的。优点是需要腾出空间安装包,缺点是包的引用会较为复杂
第三种:使用conda。这种目前未尝试,但是听说部分包的安装会污染系统环境
第四种:使用docker。这种是我比较推荐的,不污染系统环境,并且即装即用,只是会比较耗内存。下一篇推文将介绍
第五种:一个程序一个电脑,土豪必备,缺点就是比较废弃
下面的话就介绍第二种方法
首先,我们需要指定一个目录用于新包安装目录
其次,将每个安装的包都安装到这一目录
第三,在需要调用这个包时,通过以下命令将包路径添加到系统中。PS:路径结尾不需要添加路径符号‘/’
export PYTHONPATH="${PYTHONPATH}:you_python_package_absolute_path"
需要注意的是该变动仅在当前终端存在的前提下才有效,关闭终端后无效。不过,这对于一次程序的提交已然足够了
最后,快乐的运行你的程序。
三 惯例小结
其实吧,没有一种解决方法是全能的,重要的是什么解决方法最有效,用起来也最顺手。
另外,细节部分可见我的简书主页,并且我开发的Multi-omics Hammer软件和Multi-omics Visual软件也欢迎大家使用
网友评论