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介绍、安装及使用教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值