【python】.pyx文件编译为.pyd过程中遇到的问题

项目场景:

win10 anaconda3 py3.6 git version 2.29.2.windows.2 环境下的项目
有一 .pyx文件需要编译为.pyd供python执行


问题描述

  1. 需要执行脚本文件: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

解决方案:

  1. git bash在root directory下执行./utils/build-cython.sh

问题描述:

  1. 执行 python setup.py build_ext --inplace 时报错:……python3: Permission denied

解决方案:

  1. 根据git版本不同解决方法可能不同,该版本下在命令前+winpty
    即改为 winpty python setup.py build_ext --inplace

问题描述:

  1. 编译得到.pyd文件后 执行程序报错:Module use of python38.dll conflicts with this version of Python.

解决方案:

  1. 执行git bash 时自动选择了py3.8进行编译,而项目环境是py3.6,因此简单方法为在pycharm该项目内的终端执行python setup.py build_ext --inplace,即可使用py3.6进行编译。同时也会解决 “ImportError: No module named” 的问题。

你可能感兴趣的:(python程序,python,开发语言)