python - 在 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 设备上运行,但我所看到的所有内容都假设互联网连接。非常感谢您的任何帮助,在此先感谢您!
解决方案
我喜欢你将 Python 3.6 放在 U 盘上的解决方案。可能最简单的方法(我没有尝试过)是:
在您联网的机器上,在您的 U 盘上创建一个 virtualenv (
virtualenv /path/to/usb/whatever
)激活 virtualenv 后,安装支持包。(
pip install....
)。将您的 USB 记忆棒带到您的气隙机器上。插入它。如果您的站点安全人员此时没有惊慌失措,那么您做错了什么。:)
在气隙机器上激活您的 virtualenv (
source /path/to/usb/whatever/bin/activate
)
现在你应该可以运行了python myscript.py
哦等等……我忘记了一些事情。如果您的任何支持库依赖于系统库(以及 IIRC、numpy 依赖于 BLAS 库等),我认为您可能是 SOL。
推荐阅读
- python - 如何在 tkinter 中将单选按钮与组合框绑定?
- python - Heroku Procfile.windows 行为异常
- regex - 根据特定的内部标签查找 Xml 标签
- apache-spark - 如何测量 Apache Spark 和 Flink 的能耗
- java - 结果集显示为空,但表中至少有 1 条记录
- .net - 使用 PrivateFontCollection 的 AddMemoryFont() 优于 AddFontFile() 有什么好处
- angular - Angular & Spring - 标头未传递到后端
- css - 动态网格布局填充最后一行
- python - 如何使用python一一运行pip的命令行
- go - 无法通过 net/http 调用获取整个标头元素