我正在用python编写一个脚本,它依赖于几个不同的包和库。将此脚本传输到另一台计算机时,它运行所需的包有时不存在,或者是不具有相同功能的旧版本,从而导致脚本失败。
我正在考虑使用虚拟环境,但我找不到一种方法来让脚本使用我设计的特定环境作为默认环境,并且为了使用该环境,用户必须从命令行手动激活它。
我还检查了机器上安装的包的版本,如果版本不够,就从脚本中进行更新,如下所述:
Installing python module within code
有没有更简单/可靠的方法来确保所需的包无论在哪里运行都始终可用?
发布于 2019-07-12 03:08:19
通常的方法是创建一个安装脚本,并让它管理您的依赖项。然后,当您将项目移动到新环境时,安装程序将检查是否存在所有依赖项。我建议您查看setuptools:https://setuptools.readthedocs.io/en/latest/
如果您不想在需要在新的地方使用脚本时安装依赖项,那么可以将脚本打包到Docker容器中。
发布于 2019-07-12 22:15:42
我一直使用的解决方案是在我的脚本中的文件夹中包含一个定制库(包含我所需的所有包的文件夹),然后我只需从那里导入它们:
from Customlib import pkg1, pkg2,...
只要定制库和脚本保持在同一文件夹中,它就可以访问正确的包和这些包的正确版本。
我不确定这个解决方案到底有多强大,也不确定如果它从一个机器传到另一个机器,可能会出现什么错误,但现在这似乎是有效的。
https://stackoverflow.com/questions/56995706
复制相似问题