【发布时间】:2024-04-12 15:10:02
【问题描述】:
我的雇主有一个专用模块1我们用于内部单元/系统测试;然而,这个模块的作者不再在这里工作,我被要求用它测试一些设备。
问题在于pyfoo 需要一个古老版本的twisted (v8.2.0),它会在33 个不同的文件中导入twisted。我尝试在 v11.0.0 下运行 pyfoo 的单元测试,但我什至没有看到 TCP SYN 数据包2。不幸的是,我已经在我的实验室 linux 服务器上安装了twisted v11.0.0,并且我有自己的代码依赖于它。
为了解决这个问题,我只提出了以下几种方案:
选项 A。安装新版python,安装virtualenv,然后在virtualenv下安装旧版twisted。只在这个新版本的python下运行需要pyfoo的测试。
选项 B。使用以下内容编辑所有 33 个文件:DIR = '../'; sys.path.insert(0, DIR) 并将旧版本的 python 安装在源代码下方的相应目录中。
选项 C。尝试修复 pyfoo 以使用 v11.0.03
有什么我缺少的选项吗?除了上面的选项 A,还有更优雅的方法来解决这个问题吗?
**尾注:**
- 为了争论,我们称它为
pyfoo - 单元测试连接到我们的一台本地实验室服务器并练习基本的 telnet 功能
- 这个选项几乎不能启动...
pyfoo不是微不足道的,而且我的工作期限很短。
【问题讨论】:
-
@tMC,我认为我明白你在说什么,但让我明确一点...你是在建议我安装 0.8.2 版的 twisted in @ 987654335@ 然后
chroot到该目录,然后再执行测试? -
我不知道它是否真的适用于您的环境,但将 chroot 视为一种虚拟化。要在 chroot 中运行 python,您还必须拥有 python 所依赖的所有库,可能是 proc mount 等。我真的只是考虑它,因为有人建议了一个真正的 VM 解决方案。
-
在理想情况下,正确的解决方案应该是不断更新到新的扭曲版本(8.2,然后是 9.0、10.0 和最后的 11.0)并运行测试以检测并尽快纠正故障它们出现(因此,平均维护成本)。这就是为什么要进行持续集成(如Jenkins)的原因。
-
@Cedric:当然,那会很理想,但似乎发生的情况是 恶意应用程序 潜入生产环境,远远超出了工程师和经理的权限范围。负责在其间的所有岁月里维护它。似乎每周都会发现一个新的流氓应用程序,它不在 SCM 下,在票务系统中没有被跟踪,并且原来的开发者现在早就不在了。
标签: python linux twisted python-import