這是單個問題中的兩個單獨的錯誤。 我遵循Cython網站上關於如何構建一個cython腳本的文檔。我創建.pyx文件,做cython -a filename.pyx --embed
創建.c文件,然後將.c文件從Cython轉換爲獨立的.exe和編譯gcc錯誤
import pyximport; pyximport.install()
import filename
運行我的Hello World程序。
現在我要實現隨機森林用Cython和我用下面的模塊,而進口:
from __future__ import division
from sklearn.ensemble import RandomForestClassifier
import pymysql
import datetime
import csv
from operator import itemgetter
from sklearn.metrics import *
from algoScore import algo_score
import sys
當我嘗試做用Cython -a randomforest.pyx **是表明對於一些錯誤** numpy的所以我想既然numpy的使用C頭文件,我需要通過提供setup.py包含路徑(Following this link)使用的distutils構建和下面是我的setup.py:
from distutils.core import setup
from Cython.Build import cythonize
import numpy
setup(
name = "Test script",
ext_modules = cythonize('randomforest.pyx', include_path = [numpy.get_include()]), # accepts a glob pattern
)
當我嘗試建立文件來回通過下面的命令M指令行:
python setup.py build_ext --inplace
我收到以下錯誤:
running build_ext
building 'randomforest' extension
c:\mingw\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c randomforest.c -o build\temp.win32-2.7\Release\randomforest.o
writing build\temp.win32-2.7\Release\randomforest.def
c:\mingw\bin\gcc.exe -shared -s build\temp.win32-2.7\Release\randomforest.o build\temp.win32-2.7\Release\randomforest.def -LC:\Python27\libs -LC:\Python27\PCbuild -lpython27 -lmsvcr90 -o "e:\PA - Project\CodeBase\Tests\balanceClasses\balanceClasses\RF\randomforest.pyd"
C:\Python27\libs/libpython27.a(dmmes00976.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00239.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00236.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00245.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00343.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00386.o):(.idata$7+0x0): more undefined references to `_head_C__build27_cpython_PCBuild_libpython27_a' follow
collect2: ld returned 1 exit status
error: command 'c:\\mingw\\bin\\gcc.exe' failed with exit status 1
此外,儘管產生的錯誤,我得到生成的.c文件和.DEF & .o文件以及。
我想知道天氣文件是編譯器嗎?我可以通過導入或不導入從pyximport運行它嗎?另外,如果我不能,那麼是否有任何具體的方法來使用任何編譯器將.c文件編譯爲獨立的.exe文件?
我嘗試使用VC++命令行編譯器/ c和我遇到了問題,如following link(編輯1)中所述。
如果有人幫助我,因爲我長期以來一直面對這個問題,甚至使用google搜索似乎沒有給出任何答案。