2017-07-06 162 views
1

我有一個使用兩個命令行參數的Python代碼。我正在使用Linux終端執行所有命令行任務。現在我正在嘗試使用Cython來加速我的Python代碼。 對於我已經通過創建這個setup.py文件編譯使用build_ext模塊的Python代碼到C:使用命令行參數通過Cython運行python代碼

setup.py

from distutils.core import setup 
from distutils.extension import Extension 
from Cython.Distutils import build_ext 
setup (
cmdclass = {'build_ext': build_ext } , 
ext_modules = [ 
Extension ("myCode", ["myCode.py"]) , 
]) 

,然後使用編譯我的Python代碼到C:

python setup.py build_ext -i 

將下列物質生成的:

[file]myCode.c 
[file]myCode.so 
[folder]build 
--[folder]temp.linux-x86_64-2.7 
----[file]myCode.o 

我想用命令行參數運行生成的文件。 到目前爲止在Python我用的是通常的命令

>> python myCode.py arg1 arg2 

我是很新的用Cython,事實上我開始用它來解決後代碼級算法優化的Python固有的速度問題。我需要輸入哪些文件來運行,以及如何運行轉換的C代碼和命令行參數。提前致謝。

+0

Cython編譯完成後'myCode.so'成爲一個模塊。你不能運行它,你必須導入它:'python -c'import myCode''。 – phd

+0

@phd我應該在哪裏準確放置這一行以及在哪個文件中?一旦我把它妥當放置,我會明白它的目的。 – harshvardhan

+0

這只是一個例子。 'myCode'是一個模塊,你必須將它作爲任何其他模塊導入。它只是不是.py模塊,但編譯.so。 – phd

回答

0

如前所述,您編譯了一個Python模塊。因此,要從Linux調用,您必須編寫一個.py腳本,用於導入編譯後的模塊並進行所需的計算。然後,您可以使用典型的Linux命令運行它。