1

Python と Cython のラッパーを使用して Python 用の ta-lib (元は C でコーディングされた技術分析ライブラリ) をインストールしようとすると、「Unicode を有効にして Python を使用する必要があります」というエラー メッセージが表示されます。私はすでに無駄にグーグルを試みました。

完全なエラー メッセージは次のとおりです。

    C:\Python27\Lib\site-packages\ta-lib-master>python setup.py install
    running install
    running build
    running build_ext
    skipping 'talib.c' Cython extension (up-to-date)
    building 'talib' extension
    C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox
    /MD /W3 /GS- /DNDEBUG -IC:\Python27\lib\site-packages\numpy\core\include -Ic:\ms
    ys\1.0\local\include -IC:\Python27\include -IC:\Python27\PC /Tctalib.c /Fobuild\
    temp.win32-2.7\Release\talib.obj
    talib.c
    c:\python27\lib\site-packages\numpy\core\include\numpy\npy_common.h(85) : fatal
    error C1189: #error :  Must use Python with unicode enabled.
    error: command '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.ex
    e"' failed with exit status 2
4

2 に答える 2

0

コードをどの程度制御できるかはわかりませんが、numpy/ndarrayobject.h を使用して独自のコードを作成しようとすると、解決策は ndarrayobject ヘッダーを含める前に #include "Python.h" でした。

于 2016-02-04T17:57:30.860 に答える
0

Python バイナリは、Unicode を無効にしてコンパイルされました ( configure --enable_unicode=no)。NumPyには、Unicode サポートが有効になっている Python ビルドが必要です。

有効になっているものをインストールする必要があります(デフォルト)。

結局、Python で Unicode が有効になっていることがわかった場合 ( runpythonを入力print u''してもエラーが発生しない場合)、ビルド システムは代わりに Python C ヘッダーを取得できていませんC:\Python27\include。具体的には、次のpyconfig.hファイルが見つからない可能性があります。

$ grep -i unicode /usr/include/python2.6/pyconfig.h
   Include/unicodeobject.h). */
/* Define as the integral type used for Unicode representation. */
#define PY_UNICODE_TYPE unsigned long
/* Define as the size of the unicode type. */
#define Py_UNICODE_SIZE 4
/* Define if you want to have a Unicode type. */
#define Py_USING_UNICODE 1
   supplied by Python itself. (see Include/unicodectype.h). */
于 2013-01-02T14:22:17.940 に答える