如何通过命令行使用py_compile将Python文件编译到指定目录?
解决方案
该需求可实现,你之前的命令报错是因为对py_compile模块的命令行参数逻辑理解有误。
错误原因
你直接在源文件路径后追加目标输出路径的写法不成立:python3 -m py_compile 接收的无标识位置参数默认全部识别为待编译的源文件路径,因此你写的/Users/documents/abc.pyc会被程序判定为需要编译的源文件,自然会触发“找不到对应文件”的报错。
另外需要注意:py_compile不会自动创建输出路径的父级目录,即使参数写对,目标文件夹不存在时也会报错。
具体实现方法
方法1:命令行直接指定输出路径(Python 3.2+ 支持)
- 提前创建目标存放目录:macOS/Linux 执行
mkdir -p /Users/documents,Windows可手动新建对应文件夹 - 调用编译命令,通过
-o参数显式指定输出pyc文件路径,最后传入待编译的源文件路径:python3 -m py_compile -o /Users/documents/abc.pyc abc.py
方法2:调用模块API实现(全Python3版本兼容,灵活性更高)
如果需要适配3.2以下的低版本Python,或者需要批量处理编译任务,可以直接调用py_compile的内置接口,代码示例如下:
import py_compile import os # 自动创建目标目录,目录已存在时不会抛出异常 os.makedirs("/Users/documents", exist_ok=True) # 执行编译,cfile参数即为输出pyc文件的存放路径 py_compile.compile("abc.py", cfile="/Users/documents/abc.pyc")
将上述代码保存为任意Python脚本(比如do_compile.py)后,执行python3 do_compile.py即可完成编译,输出的pyc文件会存放到你指定的目录下。
内容的提问来源于stack exchange,提问作者qwerty
相关产品推荐
相关产品推荐

