如何从.py文件手动生成.pyc文件

出于某种原因,我不能依靠Python的“导入”语句自动生成.pyc文件

有没有一种方法来实现一个function如下?

def py_to_pyc(py_filepath, pyc_filepath): ... 

你可以在terminal中使用compileall。 下面的命令将recursion到子目录中,并为它find的所有python文件生成pyc文件。 compileall模块是Python标准库的一部分,所以你不需要额外安装任何东西来使用它。 这对python2和python3的工作方式完全相同。

 python -m compileall . 

我上次使用Python已经有一段时间了,但我相信你可以使用py_compile

 import py_compile py_compile.compile("file.py") 

您可以使用以下命令从命令行编译单个文件:

 python -m compileall <file_1>.py <file_n>.py 

我会使用compileall 。 它从脚本和命令行都很好地工作。 这是一个比已经提到的py_compile更高级别的模块/工具,它也在内部使用。

我find了几种将python脚本编译成字节码的方法

  1. 使用py_compile.compile

     import py_compile py_compile.compile('YourFileName.py') 
  2. 使用py_compile.main()

    它一次编译几个文件。

     import py_compile py_compile.main(['File1.py','File2.py','File3.py']) 

    列表可以随意增长,或者显然可以通过主文件列表,甚至可以通过命令行parameter passing文件名。

    或者,如果您在主要传递['-'] ,那么它可以交互地编译文件。

  3. 在terminal中使用py_compile

     python -m py_compile File1.py File2.py File3.py ... 

    或者,对于文件的交互式编译

     python -m py_compile - File1.py File2.py File3.py . . . 
  4. 使用compileall.compile_dir()

     import compileall compileall.compile_dir(direname) 

    它编译提供的目录中的每个Python文件。

  5. 使用compileall.compile_file()

     import compileall compileall.compile_file('YourFileName.py') 

看看下面的链接:

https://docs.python.org/3/library/py_compile.html

https://docs.python.org/3/library/compileall.html