Python配置第三方库Theano的曲折之路

2024-08-28 18:18

本文主要是介绍Python配置第三方库Theano的曲折之路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  Theano是Python的一个深度学习的第三方库,今天有同学问我怎样配置。OK,既然有需求,我就花了半天时间研究它,并完成了windows下32位和64位系统下的配置。这里在配置的过程中我走了一些弯路,在这篇文章中我会将我在配置过程中遇到的问题、出现的错误、解决的方法都完整的列出来,供大家参考,并列出直接简洁的配置方法。

  一、基本情况

  Theano算是Python中配置相对复杂的库了,这里先对目前的配置需求进行一个基本说明。

  1、Python配置第三方库的基本方法

  Python配置第三方库主要有以下几种方法:

  (1)Pip自动安装

  Pip是Python安装第三方库的首选方法,简单快捷,系统自动分析安装需求并从Pipy下载相应的库文件。安装Python编译器后会默认安装Pip工具,pip工具安装第三方库非常简单,只需在命令提示符窗口中输入“pip install 库名称”即可。

  在使用Pip工具时首先需要配置相关环境变量。假设我们将Python装在C盘根目录下:

  此时需要将该目录以及目录下的Scripts文件夹的路径添加到环境变量中:

  接下来我们打开命令提示符窗口,首先需要对Pip版本进行更行,更新到最新版本方可使用,更新命令为“pip install --upgrade pip”:

  更新完成后,即可使用pip工具进行第三方库的安装。这里有一个问题需要注意,就是Python必须安装在C盘下才能完成版本更新,之前安装在D盘时,在版本更新的过程中会一直显示文件移动方面的错误,这个BUG目前还没有解决,好在Python本身并不大,且相对简洁,就暂且装在C盘了。

  接下来就可以使用pip进行自动安装,非常简洁,直接“pip install 库名称”即可:

  这里我们已经安装好了Theano,因此Pip会给出提示信息,否则会自动安装。

  (2)Pip手动安装

  所谓Pip手动安装,是指我们手动下载第三方库的安装文件,然后使用pip安装。这里提供第三库安装文件的下载地址:第三方库,下载时注意版本匹配即可。

  注意这里的安装文件都是whl格式的,而非exe或者msi格式,也就意味着下载得到的安装文件只能用pip工具安装,直接双击是行不通的。

  假设这里我们用pip手动安装scipy模块。在刚才的地址中下载scipy的安装文件,这里选择win32、CP34(Python3.4)版本的安装文件:

  下载完成后,为了方便,将文件放在C盘根目录下,然后在命令提示符界面进入C盘文件夹下,使用pip命令进行安装:

  这里由于之前已经安装过numpy模块,pip会给出提示。若之前未安装相关模块,pip会在此处进行自动安装。不过这里需要强调的一点是使用pip进行手动安装时一定要先进入安装文件所在的目录,否则pip将无法找到安装源。

  (3)使用exe文件安装

  对于一些常用的第三方库,在如下地址可能会找到相应的exe版本的安装文件:exe安装文件地址,如果能在网站上搜索到相关的exe版本安装文件,下载下来直接双击安装皆即可,当然同样需要注意版本匹配的问题,而且这里貌似没有64位版本的安装文件。

  2、安装环境需求

  在安装Theano库之前,需要以下扩展库的支持:numpy(包含BLAS,ATLAS等)、scipy、libpython;需要g++支持(通过mingw安装),这里g++需要区分32位和64位。我的电脑是win7,64位,不过我的Python是32位的(64位windows是可以安装32位Python的)。这里由于我们的Python是32位的,因此以下安装的所有模块都是32位版本。

  二、开始安装

  1、安装第三方库

  首先安装numpy。经过测试以上三种方法都可以安装numpy模块,但这里必须采用第二种,也就是手动下载numpy模块来用pip安装。原因是其他两种方法安装numpy模块后,还需要手动安装BLAS、ATLAS等等,而且这两个模块都是需要进行编译才能安装的,非常麻烦,而下载得到的numpy貌似封装了这几个繁琐的模块,因此能节省很多功夫。

  安装完成之后继续安装scipy模块,这里我们同样推荐使用第二种方法手动安装,方便快捷,不受网速制约。使用pip自动安装时经常会下载失败什么的。

  然后在安装libpython模块,同上。

  以上这三个模块的安装过程都是完全相同的,这里稍作总结:在Python安装第三方模块时推荐手动安装,方便快捷。使用pip自动安装时会受防火墙、网速等各种各样的因素限制,安装的成功率低。当然如果不能找到对应的whl安装文件(例如nose模块),就只能使用pip进行自动在线安装了。这里不推荐去sourceforge去找exe版,一是exe版的安装文件不全面;二是exe版安装的库与pip安装的库并不完全相同,时间长了可能会引发未知的兼容性问题;三是exe版安装文件没有64位的。

  安装完以上扩展库后,可以安装theano库了。这里必须使用pip自动安装了,因为找不到对应的whl版本和exe版本,好在pip很给力,自动安装成功:

  这里在自动安装之前Pip会先检查numpy和scipy的安装情况,如果没有正确安装的话pip会先进行numpy和scipy的安装(当然我们不希望它这样做),然后安装theano,大约五分钟左右,下载完成,安装成功。

  2、安装g++

  首先,这里提供一个g++的下载地址:g++

  安装完theano后,我们先测试一下:

  很明显,Python提示我们没有g++,接下来我们安装一个。

  那么问题来了,我是64位windows,32位Python,那我们应该装64位的g++还是32位的g++呢?经过尝试,需要装64位的g++。想想也有道理,因为g++和Python并不是绑定的。

  这里给出64位MinGw的下载地址:64位MinGw。下载完成后,双击进行安装:

  单击next,在配置界面选择如下,单击next:

  由于是编译器,默认安装在C盘,单击next:

  这个过程会相对比较漫长,大约十分钟左右:

  单击next,安装完成。接下来将路径"C:\Program Files (x86)\mingw-w64\i686-5.2.0-posix-dwarf-rt_v4-rev1\mingw32\bin"添加到环境变量中(不同计算机的路径可能稍有不同),此时再次测试theano,安装成功:

  三、测试theano

  仅仅是import语句的话大家可能还不太确信theano库安装的正确性,接下来我们运行其中的一个小的测试函数。不过这里需要先安装nose模块,推荐使用pip进行自动安装:

  网速流畅的话应该几秒钟即可安装完成,再次测试theano:

  说明theano安装顺利完成,这里给出的警告是提示我们尚未进行GPU的配置,这点以后在说,因为theano是支持CPU的。

  四、32位系统下的配置

  刚才说的是在64位系统下配置32位python,接下来说说如何在32位系统下配置32位python的theano库。首先安装numpy、scipy、libpython、theano这四个库,这些库的安装和上面说的安装方法完全一样(因为都是32位python)。唯一不同的就是g++的安装,显然32位系统需要安装32位的g++:

  双击进入安装界面,单击next,选择下载最新版本选项:

  单击next,接受协议,next,指定安装路径(这里同样为C盘):

  单击next,选择C和C++编译器:

  单击next,单击install,开始安装,注意这里的安装是在dos界面下自动完成的:

  安装完成后,将安装目录下的bin文件夹的路径添加到环境变量中,32位的g++安装完成。这里有两个注意问题:

  (1)之前按照百度上提供的方法,通过下载器来安装32位g++,一直提示失败,原因不详。

  (2)在环境变量中32位g++和64位g++不能共存,否则会引发未知错误。这也告诉我们在配置环境变量时一定要注意及时删除失效路径,一是保证系统的安全,从而保持环境变量的整洁性。

  

 

这篇关于Python配置第三方库Theano的曲折之路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115517

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结