Windows10下anaconda成功運行Cython

前提:已安裝了anaconda,cython已安裝:conda install -c anaconda cython,後面無法編譯老出各種錯誤:沒有***var.bat文件或者gcc.exe failed 等。。。下面是摸索出的正確道路:


1. 下載mingw-get-setup.exe, http://www.mingw.org/wiki/Getting_Started
2. 安裝gcc-mingw-4.3.3-setup.exe, https://github.com/develersrl/gccwinbinaries/releases
【上面兩步我都做了,其實也不知道有沒有用因爲我極度懷疑4步驟纔是精華,但是mingw對其他語言lua等也作用很大還是安裝了。做了步驟2就貌似不用做1,因爲2也會安裝1】
並且將C:\MinGW\bin加入了windows系統變量,自創文件"Anaconda文件夾下的Lib\distutils\distutils.cfg",內容如下:
[build]
compiler = mingw32

3. 換conda的channel爲清華源,不然後面conda install的速度太慢了:
來源 https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
複製下面文字到windows用戶目錄下的 .condarc 文件

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

4. conda install libpython m2w64-toolchain -c msys2
【-c msys2寫不寫無所謂,因爲-c指定channel,我們上面設置了default channnel conda會自己找的】

5. 準備setup.py文件:
from distutils.core import setup
from Cython.Build import cythonize
setup(name='Hello world app',
      ext_modules=cythonize("hello.pyx"))
【格式一定要一樣,不然可能出現錯誤】

和hello.pyx:
def say_hello_to(name):
    print("Hello %s!" % name)

6. dos窗口運行:python setup.py build_ext --inplace
無報錯

7. 測試:文件hello_yyy.py:
from hello import say_hello_to
say_hello_to("Yang, Yiyan")

dos輸出:(base) Your_path\hello>python hello_yyy.py
Hello Yang, Yiyan!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章