2012-09-05 42 views
0

我有python文件,例如,命名爲blah.py,我想編譯,然後放置到另一個文件夾使用cmake。現在,我能夠在我的cmake的文件用下面的代碼這樣做的:編譯python代碼,然後把它放在別的地方

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文件放入我的build目錄,而不是編譯它在src目錄,然後移動它)

我敢肯定,必須有一些方法我可以用來指定我想要放置編譯的代碼,但我找不到任何。幫助將不勝感激! :)

編輯:此鏈接可能有solution..not肯定:

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

+0

可能重複( .pyc)生成在不同的目錄?](http://stackoverflow.com/questions/611967/can-compiled-bytecode-files-pyc-get-generated-in-different-directory) – tripleee

+2

@tripleee:它不是一個複製只是因爲OP想知道如何將其作爲shell命令調用。使問題有點不同 – jdi

回答

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')" 
的[燦編譯的字節碼文件
+0

非常感謝! – user1553248

相關問題