您好我有一个Python(版本3.6)脚本,我在笔记本电脑中开发。但我需要从另一台服务器运行该脚本。我在服务器上安装了相同版本的Python,但没有在我的脚本中导入的模块。这些模块安装在我的笔记本电脑上。
是否可以从服务器运行puthon脚本而无需在服务器中安装导入的模块?
由于 Shanto
答案 0 :(得分:0)
这是真的,从技术上讲,你确实需要安装依赖包。但是,您可以以编程方式安装它们,方法是在代码中包含一个检查这些软件包的前缀,如果它们不可用则使用pip来安装它们。
不推荐:
您可以使用pip
模块安装类似
try:
import package1
except ModuleNotFoundError:
import pip
pip.main(['install', pandas])
import package1
但是,不建议采用这种方式,因为(除其他原因外)pip
不是线程安全的(有关完整的理由,请参阅here)。
推荐方式:subprocess
推荐的方法是使用subprocess
(标准)模块
try:
import package1
except ModuleNotFoundError:
import subprocess
import sys
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'package1'])
import package1
答案 1 :(得分:0)
您无法在服务器上安装软件包的原因是什么?您可以尝试使用virtualenv或在代码所在的文件夹中安装所需的软件包,并将整个文件夹部署到服务器:
pip install -t <dir>
答案 2 :(得分:0)
我认为您可以使用pynistaller或py2exe或任何其他包将python脚本转换为可执行文件。 一旦创建了可执行文件(.exe)文件,您就可以运行该文件而无需安装python模块