嗨,我有一个Python(版本3.6)脚本,这是我在我的笔记本电脑上开发的。但我需要从另一台服务器运行该脚本。我在服务器上安装了相同版本的Python,但没有安装脚本中导入的模块。这些模块安装在我的笔记本电脑上。
是否可以在不安装服务器中导入的模块的情况下从服务器运行puthon脚本?
谢谢Shanto
发布于 2018-04-20 13:49:40
这是真的,从技术上讲,你确实需要安装依赖包。但是,您可以通过编程的方式安装它们,方法是在您的代码中包含一个前奏,用于检查这些软件包,如果它们不可用,则使用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发布于 2018-04-20 14:34:37
您无法在服务器上安装软件包的原因是什么?您可以尝试使用virtualenv,或者将所需的包安装在与代码相同的文件夹中,并将整个文件夹部署到服务器:
pip install -t <dir>发布于 2018-05-06 18:44:52
我认为您可以使用pynistaller或py2exe或任何其他包来将python脚本转换为可执行文件。创建可执行文件(.exe)文件后,无需安装python模块即可运行该文件
https://stackoverflow.com/questions/49934177
复制相似问题