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

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装