我開始使用Cython,並遇到在源文件中使用gettext轉換的問題。作爲一個例子,我有一個名爲的源文件ScriptParser.py我正在測試編譯爲.pyd對象。這完全沒有修改源代碼,只是試圖讓文件在此刻編譯。該文件是從項目中的一個主文件導入的。該主文件還導入了一個不同的源文件,該文件使用gettext來安裝翻譯功能_()。用Cython是給我的錯誤是這樣的:使用gettext的Cython
Error compiling Cython file:
------------------------------------------------------------
...
fn += u':%i' % step
fn += u']'
return eval(fn)
except:
error(_(u'IndexError'))
^
------------------------------------------------------------
ScriptParser.py:416:19: undeclared name not builtin: _
顯然用Cython抱怨,因爲在這個源文件沒有在那裏是_()引用或定義或任何東西,或排序。所以我想知道我應該如何解決這個問題。我是否需要更改構建腳本以包含更多文件?現在我只是試圖編譯一個文件,以測試古怪等。當我遇到這個問題時,我已經以這種方式編譯了2個源文件。
這裏是我的構建腳本供參考:
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = 'testing',
ext_modules = cythonize(['ScriptParser.py',
],
annotate=True),
)
並與名爲:
setup.py build_ext --inplace
現在,就像我說我可能只是擰在構建過程中,這是我第一次進入Cython。所以也許我錯誤地試圖編譯一個源文件,而不是做一些「整個項目」的方法?