环境配置
安装Visual C++ Build Tools 2015
因为是cython支持python35,根据cython的wiki显示需要安装vc++库:
https://github.com/cython/cython/wiki/CythonExtensionsOnWindows
但是上面说的离线ISO库我并没有安装成功,默认下载的是32位,并且不能选择,后根据微软官方对于python3.5之后的支持是需要下载Visual C++ Build Tools 2015,官方下载地址:
http://go.microsoft.com/fwlink/?LinkId=691126
官方解释:https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/#comments
如果提示需要.net4.5.1那就去微软官网下载个,要保证是64位的。
安装这个要确保先删除干净电脑的c++环境。
安装的时候我选的是自定义安装,然后去掉了win10的支持,其他的都选中了。安装之后并不需要重启,只需要重新打开cmd窗口即可。
如果是Ubuntu系统默认python3.4下记得安装环境
apt-get install -y build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev python3-numpy
安装cython
pip install cython
如果安装没提示错误信息说明,上一步环境正确,并且cython安装正确。
安装easycython
试了一些方法和库,这个最方便只要一行代码就可以搞定。
https://github.com/cjrh/easycython
pip install easycython
这个模块也会自动安装依赖的cython,如果上步安装cython失败,也可以直接尝试安装easycython来试。
转换步骤
将.py文件重命名为.pyx
运行命令
easycython *.pyx
上面会将当前文件夹下所有的.pyx文件生成为.pyd
如果只生成单个的main.pyx
main.pyx内容:
def test(): print('Hello sanfenzui!')
开始生成:
easycython main.pyx
生成文件main.cp35-win_amd64.pyd
手动将其重命名为main.pyd
注意:这里重命名时去掉“.cp35-win_amd64”不要更改前面的名字,否则不能正常引用
然后python环境下
import main #保证当前文件夹下没有main.py或者mian.pyc
main.test()
就会输出欢迎信息了。
遇到的问题
- ERROR:root:No valid source filenames were supplied.
出现这个是使用 - running build_ext building 'example' extension error: [WinError 2] 系统找不到指定的文件。
解决办法
- 卸载所有的vc++的电脑上所有的版本(坑爹的就是一些游戏会给你自动安装各个版本)
- 卸载cython和easycython
pip uninstall cython pip uninstall easycython
- 安装上面的Visual C++ Build Tools 2015
- 安装cython和easycython
本文由三分醉博客原创,转载请注明:https://www.sanfenzui.com/py2pyd_win7x64_python35.html
文章同步更新在知乎:三分醉 - 知乎