Python 如何确保始终安装/提供所需的软件包
我正在用python编写一个脚本,它依赖于几个不同的包和库。当此脚本传输到另一台计算机时,它运行所需的包有时不存在,或者是不具有相同功能并导致脚本失败的旧版本 我曾考虑使用虚拟环境,但我找不到让脚本使用我设计的特定环境的方法,因为它是默认环境,为了使用该环境,用户必须从命令行手动激活它 我还研究了如何检查机器上安装的软件包的版本,如果这些版本不够,请按照下面的说明从脚本中进行更新:Python 如何确保始终安装/提供所需的软件包,python,package,virtual-environment,Python,Package,Virtual Environment,我正在用python编写一个脚本,它依赖于几个不同的包和库。当此脚本传输到另一台计算机时,它运行所需的包有时不存在,或者是不具有相同功能并导致脚本失败的旧版本 我曾考虑使用虚拟环境,但我找不到让脚本使用我设计的特定环境的方法,因为它是默认环境,为了使用该环境,用户必须从命令行手动激活它 我还研究了如何检查机器上安装的软件包的版本,如果这些版本不够,请按照下面的说明从脚本中进行更新: 是否有更简单/可靠的方法确保所需的软件包无论在何处运行都始终可用?通常的方法是创建一个安装脚本,并让它管理您的依
是否有更简单/可靠的方法确保所需的软件包无论在何处运行都始终可用?通常的方法是创建一个安装脚本,并让它管理您的依赖关系。然后,当您将项目移动到新环境时,安装程序将检查是否存在所有依赖项。 我建议您查看设置工具:
如果您不想在需要在新的地方使用脚本时安装依赖项,那么可以将脚本打包到Docker容器中 通常的方法是创建一个安装脚本,并让它管理您的依赖项。然后,当您将项目移动到新环境时,安装程序将检查是否存在所有依赖项。 我建议您查看设置工具:
如果您不想在需要在新的地方使用脚本时安装依赖项,那么可以将脚本打包到Docker容器中 如果问题是确保所需的软件包在新环境或虚拟环境中可用,您可以使用pip生成requirements.txt,并在版本控制中进行检查,或者使用工具为您执行此操作,如 如果您希望手动生成requirements.txt,您应该:
pip
pip freeze>requirements.txt
生成requirements.txt
文件requirements.txt
当您需要设置新环境时,请使用
pip install-m requirements.txt
如果问题是确保所需的软件包在新环境或虚拟环境中可用,您可以使用pip生成requirements.txt并在版本控制中检查它,或者使用工具为您执行此操作,如
如果您希望手动生成requirements.txt,您应该:
pip
pip freeze>requirements.txt
生成requirements.txt
文件requirements.txt
当您需要设置新环境时,请使用
pip install-m requirements.txt
我一直使用的解决方案是在脚本所在的文件夹中包含一个自定义库(包含所有所需软件包的文件夹),我只需从那里导入它们:
from Customlib import pkg1, pkg2,...
只要自定义库和脚本保持在同一文件夹中,它将始终能够访问正确的包和这些包的正确版本
我不确定这个解决方案到底有多强大,或者如果它从一台机器传递到另一台机器,可能会产生什么错误,但目前看来这似乎是可行的。我一直使用的解决方案是在我的脚本文件夹中包含一个自定义库(包含我所需的所有包的文件夹),我只是从那里导入它们:
from Customlib import pkg1, pkg2,...
只要自定义库和脚本保持在同一文件夹中,它将始终能够访问正确的包和这些包的正确版本
我不确定这个解决方案到底有多健壮,或者如果它从一台机器传递到另一台机器,可能会产生什么错误,但目前看来这似乎是可行的。这似乎是一个普遍的好做法,但似乎仍有人必须手动运行pip命令才能运行脚本。此外,requirements.txt还必须插入到新机器上的源代码管理软件中,对吗?是的,您需要为每个环境手动运行该命令,这对开发很好。至于源代码管理,这并不是真的必要,但这取决于您的需要。这似乎是一个普遍的好做法,但似乎仍然需要有人手动运行pip命令才能运行脚本。此外,requirements.txt还必须插入到新机器上的源代码管理软件中,对吗?是的,您需要为每个环境手动运行该命令,这对开发很好。至于源代码控制,它不是真的必要,但这取决于您的需要。