编译python代码然后将其放在其他地方

时间:2012-09-05 19:16:45

标签: python compilation cmake

我有python文件,例如,名为blah.py,我想编译然后使用cmake放入另一个文件夹。现在,我能够使用我的cmake文件中的以下代码执行此操作:

ADD_CUSTOM_TARGET(output ALL /usr/bin/python -m py_compile src/blah.py
                  COMMAND /bin/mv src/blah.pyc build VERBATIM)

这是在ubuntu 12.04上。此代码按预期工作;唯一的问题是python文件是在源目录中编译的,然后放在build目录中。

但是,我不能假设这个src目录将具有读取和写入权限,这意味着我需要做的是将这两个命令合并为一个(编译python文件并将编译好的python文件放入我的构建目录中,而不是在src目录中编译然后移动它)

我确信必须有一些方法可以用来指定我希望放置这个编译代码的位置,但我找不到任何方法。非常感谢帮助! :)

编辑:此链接可能有解决方案......不确定:

Can compiled bytecode files (.pyc) get generated in different directory?

1 个答案:

答案 0 :(得分:3)

我输入了这个答案,然后看了你编辑过的链接。其中一个未被接受的答案给出了同样的答案:https://stackoverflow.com/a/611995/496445

import py_compile
py_compile.compile('/path/to/source/code.py', cfile='/path/to/build/code.pyc')

要通过基本shell命令调用它,您可以将其格式化为:

python -c "import py_compile; py_compile.compile('/path/to/source/code.py', cfile='/path/to/build/code.pyc')"