首页 > 解决方案 > 在 Linux 上运行 python 没有互联网连接

问题描述

在我的工作中,我有一台在未连接到 Internet 的 Linux 上运行的旧机器。它预装了 Python 2.4.3,但我需要使用机器没有的一些库。理想情况下,我想要 Python 3.6 或更高版本,因为我已经为这个版本制作了经验/完成的代码。

作为参考,我将复制一些需要在相关计算机上运行的最难的代码(这是一个模块,用于从具有不同长度值的三列数据制作 2D 彩色图):

import matplotlib.pyplot as plt
from matplotlib.colors import BoundaryNorm
from matplotlib.colors import LogNorm
import numpy as np
import pylab as plb
import scipy.interpolate
from scipy.optimize import curve_fit
from scipy import asarray as ar,exp
import math as mt

data = 'aupnipam_scan41_3DFLR.txt'

f = np.genfromtxt(data)
x = f[:,][:,0]
y = f[:,][:,1]
z = f[:,][:,2]

i = 0
t = 0
xmatrix = [[0 for x in range(26)] for y in range(1024)]
ymatrix = [[0 for x in range(26)] for y in range(1024)]
zmatrix = [[0 for x in range(26)] for y in range(1024)]

while (i < 26):
    j = 0
    while (j < 1024):

        xmatrix[j][i] = x[t]
        j = j+1

    t = t+1024
    i = i+1

i = 0
j = 0
t = 0

while (j < 1024):
    i = 0
    while (i < 26):
        ymatrix[j][i] = y[j]
        i = i+1
    j = j+1

i = 0
j = 0

while (i < 26):
    j = 0
    while (j < 1024 and t < 26624):
        if(z[t] == 0):
            z[t] = 0.1
        zmatrix[j][i] = z[t]
        j = j+1
        t = t+1
    i = i+1
    t = t+1

levels = np.linspace(0, 50, 51)
cmap = plt.get_cmap('magma')
norm = LogNorm(1, 100, clip=True)

im = plt.pcolormesh(xmatrix, ymatrix, zmatrix, cmap=cmap, norm=norm)
plt.colorbar(im)
plt.show()

现在,我想我真正的问题是让我的代码在这里运行的最简单方法是什么?我会做相当基本的数字运算,如您所见,没有什么太难的;我相信 Python 2.4 能够运行它,但我需要 matplotlib、scipy 等来运行我所拥有的。

可能有一种方法可以让机器暂时连接到互联网以安装我需要的东西,但我为美国能源部的一个扩展部门工作,这样做很麻烦。或者,我非常想将 Python 3.6 的安装放到 USB 上,以便将其复制过来并在 Linux 设备上手动设置环境路径。这行得通吗?我需要先卸载 Python 2.4 吗?这样做还有其他步骤/并发症吗?我知道自己编写不使用库的代码是可能的,但我认为我不具备实现这一目标的编码技能。

我知道上面提到的几种可能性,但我不完全确定如何真正完成它们;也许经历过这个过程或类似事情的人可以提供帮助。我尝试翻阅在线指南以使 python+库在 Linux 设备上运行,但我所看到的所有内容都假设互联网连接。非常感谢您的任何帮助,在此先感谢您!

标签: pythonpython-3.6python-2.4

解决方案


我喜欢你将 Python 3.6 放在 U 盘上的解决方案。可能最简单的方法(我没有尝试过)是:

  1. 在您联网的机器上,在您的 U 盘上创建一个 virtualenv ( virtualenv /path/to/usb/whatever)

  2. 激活 virtualenv 后,安装支持包。( pip install....)。

  3. 将您的 USB 记忆棒带到您的气隙机器上。插入它。如果您的站点安全人员此时没有惊慌失措,那么您做错了什么。:)

  4. 在气隙机器上激活您的 virtualenv ( source /path/to/usb/whatever/bin/activate)

现在你应该可以运行了python myscript.py

哦等等……我忘记了一些事情。如果您的任何支持库依赖于系统库(以及 IIRC、numpy 依赖于 BLAS 库等),我认为您可能是 SOL。


推荐阅读