python的开发环境有哪些系统_Win10下配置机器学习python开发环境

近期计划写一写机器学习微信小程序的开发教程,但微信开发工具只提供了Windows和Mac OS版本,作为一名长期使用Linux系统的开发人员,虽然始终认为Linux系统才是对开发者最友好的,但微信团队作出这种选择,肯定经过调查。不管我怎样认为Linux系统如何之好,Windows系统毕竟是主流,大多数开发者使用的系统也是Windows系统,所以打算写一写Windows环境下的机器学习开发环境配置,内容包括Python环境、CUDA、IDE以及微信开发者工具等,这是其中的一篇。

由于历史原因,python长期存在两个版本,python 2和python 3,而且存在兼容问题。虽然经过开发者不断的努力,普遍转向Python 3,但Python 2仍然像打不死的小强,顽强的存在着。比如大多数Linux发行版本,python 2依然是默认版本。再加上python社区非常活跃,各种python库也在不停的向前发展,不同版本python库之间不兼容的情况一直存在。有时开发者也很尴尬,比如发布了一个项目到github,会有读者过来问,为什么代码在我这儿出错?

针对这一状况,建议python开发者使用Anaconda。Anaconda是可以便捷获取python包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。使用Anaconda有什么好处呢?可以建立python虚拟环境。

比如针对python 2的历史遗留代码,建立一个虚拟环境,针对python 3 新代码,再建立一个虚拟环境,两套环境互相隔离,互不影响。不会因为在安装了一个python 2的包,而使得python 3代码无法执行。Python虚拟环境和虚拟机有所不同,它是一种轻量级的隔离机制,所以在空间和速度上几乎没有额外的开销。

Anaconda是一揽子解决方案

python的用户可能知道,通过安装virtualenv,也可以建立python虚拟环境,但需要下载python,设置环境变量,安装pip,安装virtualenv,…诸多繁琐步骤,而且为了使用方便,可能还要安装wrap脚本。而anaconda作为python环境一揽子解决方案,安装包中包含了python发行包,集成包管理工具,只需要下载和安装一个软件包,即可解决。而且Anaconda支持Windows、Linux及Mac OS系统,在各操作系统下操作一致,减少操作系统迁移的成本。

Anaconda的虚拟环境可复制

Anaconda的虚拟环境可以导出为一张列表,列表上包含环境中所有python包的名称及版本信息,这样他人可以导入该列表,复制出一个一模一样的python虚拟环境。列表为文本文件,便于分享,可以加入git管理,在开发过程中,哪些python库依赖发生了变化,可以追溯。

下面就说说在Windows 10下如何安装和配置Anaconda。

获取Anaconda

和Windows下其它应用软件的安装类似,首先去Anaconda的官网下载安装包,下载地址为:https://www.anaconda.com/distribution/

建议选择Python 3.7的64位版本:

这里选择python 3.7,并不意味着python虚拟环境只能是python 3,而是默认的python虚拟环境为python 3。虽然python 2的生命力很顽强,但是新写的代码建议用python 3。

安装软件包。根据安装向导进行安装即可,选择安装类型这个步骤需要注意:

建议选择 Just Me 这个选项,如果选择All users,可能需要管理员权限。如果你是系统的管理员用户,这个倒问题不大。

创建python虚拟环境,安装tensorflow

Anaconda安装之后,我们可以看到Windows启动栏多了Anaconda3 (64-bit)程序组,点击Anaconda Prompt(Anaconda3):

启动Anaconda命令行:

我们可以注意到命令行前面有一个(base)字样,这表明当前Anaconda的虚拟环境名为base,这也是Anaconda默认的虚拟环境。

接下来为tensorflow创建一个虚拟环境。因为TensorFlow有支持GPU的版本,如果要TensorFlow支持GPU,还需要额外安装一些软件和配置,先暂时放一放,到下篇文章再详细展开。我们把虚拟环境命名为tensorflow_gpu:conda create --name tensorflow_gpu

切换到我们创建的tensorflow_gpu虚拟环境:activate tensorflow_gpu

可以注意到,命令行前面的字样变成了(tensorflow_gpu),表明已经切换到tensorflow_gpu这个虚拟环境:

安装tensorflow-gpu包:conda install -c anaconda tensorflow-gpu

当然你也可以采用pip的方式进行安装,这个看个人喜好。

可以使用如下的代码进行测试:import tensorflow as tf

print(tf.__version__)

tf.test.is_gpu_available()

结果如下:1.13.1

2019-08-09 15:45:13.852793: I tensorflow/core/platform/cpu_feature_guard.cc:141]

Your CPU supports instructions that this TensorFlow binary was not compiled to

use: AVX AVX2

2019-08-09 15:45:15.069595: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1

433] Found device 0 with properties:

name: GeForce GTX 950M major: 5 minor: 0 memoryClockRate(GHz): 1.124

pciBusID: 0000:01:00.0

totalMemory: 2.00GiB freeMemory: 1.92GiB

2019-08-09 15:45:15.085195: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1

512] Adding visible gpu devices: 0

Traceback (most recent call last):

File "", line 1, in

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\fra

mework\test_util.py", line 1242, in is_gpu_available

for local_device in device_lib.list_local_devices():

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\cli

ent\device_lib.py", line 41, in list_local_devices

for s in pywrap_tensorflow.list_devices(session_config=session_config)

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\pyw

rap_tensorflow_internal.py", line 1829, in list_devices

return ListDevices(status)

File "C:\Anaconda3\envs\tensorflow_gpu\lib\site-packages\tensorflow\python\fra

mework\errors_impl.py", line 528, in __exit__

c_api.TF_GetCode(self.status.status))

tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed. S

tatus: CUDA driver version is insufficient for CUDA runtime version

可以看出,tensorflow包导入和使用没有问题,当前使用的TensorFlow 1.13.1版本,但没有GPU支持。如何让TensorFlow支持GPU加速,下一篇文章再详细说明。

如果要退出当前的虚拟环境,可以使用如下命令:conda deactivate

导出和导入虚拟环境

现在我们创建了一个名为tensorflow_gpu的虚拟环境,如果要分享给他人,可以将环境导出为一个文本文件:activate tensorflow_gpu

conda env export > c:/tensorflow_gpu.yml

上面的命令将环境导出到tensorflow_gpu.yml文件中,我们可以用文本编辑器打开看一看里面的内容:name: tensorflow_gpu

channels:

- anaconda

- defaults

dependencies:

- _tflow_select=2.1.0=gpu

- absl-py=0.7.1=py37_0

- astor=0.7.1=py37_0

- blas=1.0=mkl

- ca-certificates=2019.5.15=0

- certifi=2019.6.16=py37_0

- cudatoolkit=10.0.130=0

- cudnn=7.6.0=cuda10.0_0

- gast=0.2.2=py37_0

- grpcio=1.16.1=py37h351948d_1

- h5py=2.9.0=py37h5e291fa_0

- hdf5=1.10.4=h7ebc959_0

- icc_rt=2019.0.0=h0cc432a_1

- intel-openmp=2019.4=245

- keras-applications=1.0.8=py_0

- keras-preprocessing=1.1.0=py_1

- libprotobuf=3.8.0=h7bd577a_0

- markdown=3.1.1=py37_0

- mkl=2019.4=245

- mkl-service=2.0.2=py37he774522_0

- mkl_fft=1.0.12=py37h14836fe_0

- mkl_random=1.0.2=py37h343c172_0

- mock=3.0.5=py37_0

- numpy=1.16.4=py37h19fb1c0_0

- numpy-base=1.16.4=py37hc3f5095_0

- openssl=1.1.1=he774522_0

- pip=19.1.1=py37_0

- protobuf=3.8.0=py37h33f27b4_0

- pyreadline=2.1=py37_1

- python=3.7.3=h8c8aaf0_1

- scipy=1.3.0=py37h29ff71c_0

- setuptools=41.0.1=py37_0

- six=1.12.0=py37_0

- sqlite=3.29.0=he774522_0

- tensorboard=1.13.1=py37h33f27b4_0

- tensorflow=1.13.1=gpu_py37h83e5d6a_0

- tensorflow-base=1.13.1=gpu_py37h871c8ca_0

- tensorflow-estimator=1.13.0=py_0

- tensorflow-gpu=1.13.1=h0d30ee6_0

- termcolor=1.1.0=py37_1

- vc=14.1=h21ff451_3

- vs2015_runtime=15.5.2=3

- werkzeug=0.15.4=py_0

- wheel=0.33.4=py37_0

- wincertstore=0.2=py37_0

- zlib=1.2.11=h62dcd97_3

prefix: C:\Anaconda3\envs\tensorflow_gpu

内容比较容易理解,就是安装了哪些依赖包。除了导出之外,我们还可以手工创建,也可以修改导出的yml文件,比如修改虚拟环境的名称,这属于比较高级的操作,有兴趣可以看看Anaconda官方文档。

他人在得到这份yml文件后,可以复刻Anaconda虚拟环境:conda env create -f tensorflow_gpu.y

到此,Windows 10下的机器学习python开发环境就配置好了,接下来还需要更进一步,下一篇文章将讲讲Windows 10下GPU的支持,敬请关注。

参考https://docs.conda.io/projects/conda/en/latest/index.html

Installing a Python Based Machine Learning Environment in Windows 10

Anaconda介绍、安装及使用教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态添加ContextMenuStrip项(ToolStripItem)

//绑定菜单privatevoidBindMenu(DataTable dt) {foreach(DataRow row indt.Rows) { ToolStripItem item newToolStripMenuItem(); item.Name row[0].ToString(); item.Text row[1].ToString(); item.Click newEventHandler(contextMenuStrip1_ItemClick); contextMenuStrip1.It…

07_00_加载资源(Webpack Book)

Loading Assets(加载资源) In this part, you will learn how to load different types of assets using webpack’s loaders. Especially images, fonts, and JavaScript receive particular attention. You also learn how webpack’s loader definitions work.在这部分&…

html与cgi脚本的配合使用

利用boa服务器测试arm开发板上的cgi和html联合编程的小例程。很简单,但是当时觉得很有意思。在这里给大家展示一下,高手飘过。 在ubuntu下安装boa测试环境,即先在本地搭建一个boa的网页服务器。apt-get install boa。稍作配置即可。我的Boa按…

zabbix3监控ESXI主机

ESXI主机VMware公司企业级虚拟化的解决方案Vsphere的重要组件,也是虚拟机的宿主机,对其监控有着重要的意义,下边介绍二种方发对其监控。 方法一:通过修改服务端的控制项来进行监控。 虚拟机监控分两个步骤完成。首先,Z…

mybatis jar包_springboot2整合mybatis-plus3踩到的坑

前言最近在进行项目重构,在架构师的建议下,就把项目中mybatis切换成mybatis-plus。因为mybatis-plus在mybatis的基础上只做增强不做改变,因此切换的成本很低,就只需改jar和配置内容,原先的代码无需改动。因为mybatis-p…

java_二进制的前导的零

题目内容: 计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称…

共享几套silverlight2 toolkit最新的皮肤控件样式下载

下载了最新的silverlight2 toolkit看看,发现里面的控件样式还是多漂亮的,与大家分享下。 blue dark light orange purple red 样式源码下载:点击下载 当然,我最喜欢的还是orange哦。 转载于:https://www.cnblogs.com/liaohenchen/…

python爬取同花顺_Java爬取同花顺股票数据(附源码)

最近有小伙伴问我能不能抓取同花顺的数据,最近股票行情还不错,想把数据抓下来自己分析分析。我大A股,大家都知道的,一个概念火了,相应的股票就都大涨。 如果能及时获取股票涨跌信息,那就能在刚开始火起来的…

开会=浪费时间?阿里技术团队这样开项目复盘会

2019独角兽企业重金招聘Python工程师标准>>> 阿里妹导读:复盘是项目结束后必不可少的阶段,好的复盘会议能够有效地促进团队成长。今天,阿里项目管理专家鹿迦以自身的经验,为大家分享如何做好一个项目的复盘。这篇文章分…

Spring @Value注解无法正确赋值问题

正确的调用方式为: Component public class IconProperties {Value("${icon.url}")private String url; } public class test{AutowiredIconProperties icon;public void test(){ String url icon.url; } } 这里有三个需要注意的点: 1.Value…

Extjs中使用FusionChart举例

一 前言: 在项目实施中,设计统计部分经常会使用图表进行显示,在Extjs3中内置了图表控件,但实际表现无法达到3D的美观效果,通过查找FusionChart可以实现比较美观的3D或2D图表显示。注:FusionChart是个商业…

drawitem设置指定行的背景颜色_Java 为 Excel 中的行设置交替背景色

点击上方 好好学java ,选择 星标 公众号重磅资讯、干货,第一时间送达今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~作者:Jazzz链接:https://www.cnblogs.com/jazz-z/p/12665819.html在制作Excel表…

常见的关系型数据库和非关系型数据及其区别

一、关系型数据库 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可用于复杂查询&#x…

逆序数技巧 - 牛客

链接:https://ac.nowcoder.com/acm/contest/308/D来源:牛客网 题目描述 tokitsukaze给你一个长度为n的序列,这个序列是1到n的一种排列。然后她会进行q次操作。每次操作会给你L R k这三个数,表示区间[L,R]往右移动k次。移动一次的…

Ajax跨域提交JSON和JSONP

可以直接使用$.getJSON()方法实现跨域请求,参数中必须加上callback,如: var jsonpUrl http://www.test.com/index.php?cApi_Order&aAddOrder&callback?;var param {uid:uid,type:type,cityId:cityId};$.getJSON(jsonpUrl, param,…

mysql数据库商业版与社区版的区别

1、商业版本组织管理与测试环节控制更严格,稳定性方面,会比社区版本更稳定。 2、mysql是成熟产品,商业版与社区版之间性能方面相差不大。 3、商业版不遵守GPL协议,社区版遵守GPL协议可以免费使用。 4、使用商业版后可以购买相关的…

UML的奥妙 - 学习UML笔记(1)

前两天买了一本《大象 Thinking in UML》,其实本就有学习UML的念头,但都因这样那样的事儿耽搁了,当然,也有些惰性在作祟...... 闲话少说,这本书看完了一章,发现还是不错的,先把这两天的学习情况…

无法检查指定的位置是否位于cfs上_(干货分享)一文搞明白 节气门位置传感器的作用、故障类型与症状、诊断方法...

1 位置节气门位置传感器(ThrottlePositionSensor,TPS),位于节气门体上,其安装形式因节气门结构的不同而有所差异:对于传统的机械拉索式节气门,节气门位置传感器通常以一个独立元件的形式安装在节气门体的侧面&#xf…

盒子模型

1 <!doctype html>2 <html>3 <head>4 <title>盒子模型</title>5 <meta charset"utf-8">6 <meta name"keywords", content"">7 <meta name"description&…

表单跨域提交

利用form表单跨域post 现在ajax应用这么广泛&#xff0c;一般的应用都是直接通过异步调用就可以了&#xff0c;但是有些东西必须要使用post&#xff0c;而且是跨域的时候&#xff0c;ajax异步调用的方式就无能为力了。当然现在也有很多种办法&#xff0c;比如通过flash中转去po…