You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何锁定test.py文件防止被修改?适配坦普尔大学离线编程作业

解决Thonny中锁定test.py文件的方案

我目前正在为坦普尔大学的一门课程开发类Hacker Rank风格的离线编程练习工具:

  • task.py:专门给学生用来编写自定义代码的文件
  • test.py:我自己开发的测试模块,用来验证学生代码的正确性
  • 之所以选Thonny作为开发环境,是因为它资源占用极低,能完美适配家中没有网络的学生使用

现在的核心需求是:把test.py文件锁定,防止学生误修改或者恶意修改

下面给你几个实用的解决方案,适配不同的需求场景:

方法一:用Thonny自带的文件保护功能(最适合教学场景)

Thonny本身就为教学场景做了文件保护的设计,步骤很简单:

  1. 打开Thonny,点击顶部菜单栏的Tools → Options
  2. 在弹出的设置窗口里切换到Files标签页
  3. 找到「Protected files」区域,点击Add按钮
  4. 选中你的test.py文件,确认添加
  5. 勾选「Prevent modification of protected files」选项,最后点击OK保存设置

设置完成后,学生在Thonny里打开test.py时,文件会被标记为只读状态,无法直接编辑和保存,完全满足需求。

方法二:修改系统层面的文件权限(更彻底的锁定)

如果你想从系统层面彻底限制文件的修改权限,也可以这么做:

  • Windows系统:右键点击test.py → 「属性」 → 勾选「只读」选项 → 点击「应用」确认
  • macOS/Linux系统:打开终端,进入文件所在目录,执行命令:chmod 444 test.py
    这个命令会把文件设置为所有用户只有读取权限,没有写入和修改权限。

方法三:打包成编译模块(隐藏源码+锁定)

如果希望完全隐藏test.py的源码,同时实现锁定,可以把它打包成编译后的模块:

  1. 把test.py放到一个单独的文件夹里,比如命名为test_module
  2. 在这个文件夹里创建一个空的__init__.py文件(用来标识这是一个Python模块)
  3. 打开终端,执行编译命令:python -m compileall test_module/,这会生成编译后的.pyc文件
  4. 删掉原有的test.py文件,只保留编译后的.pyc和__init__.py
  5. 学生的task.py可以通过import test_module来调用测试功能,完全看不到原始源码,自然也没法修改

内容的提问来源于stack exchange,提问作者Benjamin A Blouin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:45:12