我知道当Python脚本被导入到其他Python脚本中时,会创建一个.pyc文件。有没有其他方法可以通过使用Linux Bash终端来创建.pyc文件?
使用以下命令:
python -m compileall <your_script.py>
这将在同一目录下创建your_script.pyc
文件。
你也可以传递目录参数:
python -m compileall <directory>
这将为目录中的所有 .py 文件创建 .pyc 文件。
另一种方法是创建另一个脚本:
import py_compile
py_compile.compile("your_script.py")
它还会创建名为your_script.pyc的文件。您可以将文件名作为命令行参数。
py_compile
模块。从命令行运行它(使用-m
选项):
当这个模块作为脚本运行时,main()函数会用于编译所有在命令行上命名的文件。
例如:
$ tree
.
└── script.py
0 directories, 1 file
$ python3 -mpy_compile script.py
$ tree
.
├── __pycache__
│ └── script.cpython-34.pyc
└── script.py
1 directory, 2 files
compileall
提供了类似的功能,使用它的方法如下:
$ python3 -m compileall ...
其中...
是需要编译的文件或包含源文件的目录,递归遍历。
另一种选择是导入该模块:
$ tree
.
├── module.py
├── __pycache__
│ └── script.cpython-34.pyc
└── script.py
1 directory, 3 files
$ python3 -c 'import module'
$ tree
.
├── module.py
├── __pycache__
│ ├── module.cpython-34.pyc
│ └── script.cpython-34.pyc
└── script.py
1 directory, 4 files
-c 'import module'
和 -m module
是不同的,因为前者不会执行module.py中的if __name__ == '__main__':
代码块。
python -m compileall
:该命令用于将 Python 源代码编译成字节码文件,使其更加难以被反向工程破解。 - Peter Wood