项目场景:
win10 anaconda3 py3.6 git version 2.29.2.windows.2 环境下的项目
有一 .pyx文件需要编译为.pyd供python执行
问题描述
- 需要执行脚本文件:build-cython.sh:
cd distances/dtw
rm __init__.py
rm dtw.c
rm *.so
rm -r build
rm -r __pycache__
python setup.py build_ext --inplace
touch __init__.py
chmod 777 __init__.py
解决方案:
- git bash在root directory下执行./utils/build-cython.sh
问题描述:
- 执行 python setup.py build_ext --inplace 时报错:……python3: Permission denied
解决方案:
- 根据git版本不同解决方法可能不同,该版本下在命令前+winpty
即改为 winpty python setup.py build_ext --inplace
问题描述:
- 编译得到.pyd文件后 执行程序报错:Module use of python38.dll conflicts with this version of Python.
解决方案:
- 执行git bash 时自动选择了py3.8进行编译,而项目环境是py3.6,因此简单方法为在pycharm该项目内的终端执行python setup.py build_ext --inplace,即可使用py3.6进行编译。同时也会解决 “ImportError: No module named” 的问题。