参考博文:
1、windows环境下tensorflow安装过程详解 windows环境下tensorflow安装过程详解_failed to install tensorflow_小白的进阶的博客-优快云博客
2、清华镜像网站:https://mirrors.tuna.tsinghua.edu.cn/tensorflow/windows/cpu/
3、Tensorflow在win10下的安装(CPU版本)https://www.cnblogs.com/shuaishuaidefeizhu/p/9949899.html
4、Anaconda详细安装及使用教程Anaconda详细安装及使用教程(带图文)_代码帮的博客-优快云博客
5、PyCharm2019 安装和配置 PyCharm2019 安装和配置_坐在忘川看月亮的博客-优快云博客
6、Anaconda、TensorFlow安装和Pycharm配置详细教程,亲测有效!参考这个配置
一、anaconda安装(需要安装电脑能上网)
下载地址: 清华大学开源软件镜像站
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
我安装的是 Anaconda3-5.2.0-Windows-x86_64.exe
默认一路 NEXT即可,直到最后安装完毕。
1.1Anaconda安装成功与否测试
(1)进入Windows系统的cmd界面:然后输入:conda --version
检查anaconda的版本
(2)检查目前安装了哪些环境变量:conda info --envs
,如下所示即为成功
1.2 错误:conda不是内部或者外部命令
在环境变量后面加:(具体步骤,我的电脑-系统属性-高级系统设置-高级-环境变量-系统变量-找到Path,在里面加入:
1.3 安装python
(1)需要安装一个Python解译器,可以使用conda search --full -name python
(Anaconda如果比较新的版本,可以使用conda search --full --name python
)检查支持的Python版本。我安装的就是比较新的版本,所以使用的是conda search --full --name python
检查Python版本
(2)安装Python解译器:conda create --name tensorflow python=3.6
,我安装的是3.6版本,你可以根据自己需要安装自己的需要选择版本。(为了不出错,建议你也安装3.6版本)
1.4、检查TensorFlow环境添加成功与否
(1)激活tensflow的环境:activate tensorflow
(2)检测tensflow的环境添加到了Anaconda里面:conda info --envs
(3)退出tensorflow的环境:deactivate tensorflow
(不过这里不需要退出哈,因为我们要进行TensorFlow安装)
二、TensorFlow安装
前提: 在激活TensorFlow情况下(即前边有tensorflow字样),如果没有激活,需使用:activate tensorflow
进行激活
(1)使用如下命令进行安装TensorFlow:pip install --upgrade --ignore-installed tensorflow
,等待安装就可以了。
提示: 如果提示需要你升级你的pip的版本,那么你就根据上面的提示进行命令安装就可以了。我这里就遇到了,所以我升级了版本:python -m pip install --upgrade pip
。
(2)安装TensorFlow:pip install --upgrade --ignore-installed tensorflow
2.1 测试TensorFlow安装是否成功
(1)打开之前安装的Anaconda,选择prompt
(2)使用activate tensorflow
切换到tensorflow环境
(3)输入python
进入Python编译环境
(4)依次输入如下命令:
import tensorflow as tf
hello = tf.constant('hello,tf')
sess = tf.Session()
print(sess.run(hello))
(5)显示如下结果表示测试成功:
2.2 错误处理
安装 tensorflow 版本为 2.3.0
2.2.1 在安装tensorflow完成后,import tensorflow as tf出现问题,问题如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
问题原因:
tensorflow的新版本不支持比较老的cpu
解决办法:
卸载现有的tensorflow,安装tensorflow1.5版本
依次执行:
1 2 3 |
|
2.2.2 又报错 5555:
>>> import tensorflow as tf
D:\deeplearnlingsoft\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\dtypes.py:493: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
D:\deeplearnlingsoft\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\dtypes.py:494: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
D:\deeplearnlingsoft\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\dtypes.py:495: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
D:\deeplearnlingsoft\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\dtypes.py:496: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
D:\deeplearnlingsoft\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\dtypes.py:497: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
查阅后是因为numpy版本不符
通过以下代码将版本进行安装(安装过程conda会自动卸载之前不符合的版本):
pip install numpy==1.16.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.2.3 执行测试代码出现问题:
>>> import tensorflow as tf
>>> hello = tf.constant('hello,tf')
>>> sess = tf.Session()
2020-08-20 13:55:57.006877: I C:\tf_jenkins\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX
>>> print(sess.run(hello))
b'hello,tf'
解决方法:
原因是下载TensorFlow的版本不支持cpu的AVX2编译。
可能是因为安装时使用的pip install tensorflow ,这样默认会下载X86_64的SIMD版本。
有两种解决办法:
1.忽略这个警告,不看它!
1 2 3 4 |
|
我们用第二个就可以了。
2.彻底解决,换成支持cpu用AVX2编译的TensorFlow版本。
首先,卸载原来版本的TensorFlow
1 |
|
完成后可以用pip list查看一下所有库,检查是否成功卸载。
然后去github下载正确的tf版本,Windows点这里下载。其他操作系统可以点这里找到对应的版本。
博主用的win10,python3.6,所以选择如下图:
对应的path在上边的找到对应的.whl下载即可。
然后安装:
1 |
|
pip install tensorflow-1.6.0-cp36-cp36m-win_amd64.whl
成功安装后,再次运行TensorFlow就不会报错啦
2.2.3 What does version name ‘cp27’ or ‘cp35’ mean in Python?
如对于 gensim-0.12.4-cp27-none-win_amd64.whl
文件名而言,将其文件名拆分的话,含义分别是:
- 0.12.4 - package version, they may be using semantic versioning
- cp27 - this package is for CPython. IronPython, Jython, or PyPy will probably be unhappy.
- CPython version 2.7.
- none - no feature of this package depends on the python Application Binary Interface, or ABI
- win_amd64 - this has been compiled for 64-bit Windows. That means that it probably has some code written in C/C++
- .whl - that means this is a wheel distribution. Which is handy, because it means if you’re running CPython 2.7 64-bit on Windows, and assuming you have pip installed, all you have to do to get this package is run: py -2.7 -m pip install –use-wheel gensim (assuming that it’s available on pypi, of course). You may need to py -2.7 -m pip install wheel first. But other than that, that should be all it takes.
版本不对下载正确版本即可
三、配置TensorFlow至Pycharm
pycharm安装 参考 https://blog.youkuaiyun.com/wuling129/article/details/107108512
只需将当前的Python编译环境配置为TensFlow安装路径中的Pyhton环境,具体操作如下:
1)打开Pycharm,点击“file”菜单下的settings
(2)点击“Project:Pycharm”中的“Project Interpreter”,点击右侧的小三角下的“Add”按钮,添加安装TensorFlow下的Python
(3). 选择Existing Environment,找到TensorFlow安装路径下 bin包里的python文件
4. 添加完毕后,点击ok即可,之后就可以正常 import tensorflow
四、pycharm常用设置与配置管理
4.1pycharm常用设置
lz提示一下,pycharm中的设置是可以导入和导出的,file>export settings可以保存当前pycharm中的设置为jar文件,重装时可以直接import settings>jar文件,就不用重复配置了。
4.1.1 file -> Setting ->Editor
1. 设置Python自动引入包,要先在 >general > autoimport -> python :show popup
快捷键:Alt + Enter: 自动添加包
2. “代码自动完成”时间延时设置
> Code Completion -> Auto code completion in (ms):0 -> Autopopup in (ms):500
3. Pycharm中默认是不能用Ctrl+滚轮改变字体大小的,可以在〉Mouse中设置
4. 显示“行号”与“空白字符”
> Appearance -> 勾选“Show line numbers”、“Show whitespaces”、“Show method separators”
小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取
5. 设置编辑器“颜色与字体”主题
> Colors & Fonts -> Scheme name -> 选择"monokai"“Darcula”
说明:先选择“monokai”,再“Save As”为"monokai-pipi",因为默认的主题是“只读的”,一些字体大小颜色什么的都不能修改,拷贝一份后方可修改!
修改字体大小
> Colors & Fonts -> Font -> Size -> 设置为“14”
6. 设置缩进符为制表符“Tab”
File -> Default Settings -> Code Style
-> General -> 勾选“Use tab character”
-> Python -> 勾选“Use tab character”
-> 其他的语言代码同理设置
7. 去掉默认折叠
> Code Folding -> Collapse by default -> 全部去掉勾选
8. pycharm默认是自动保存的,习惯自己按ctrl + s 的可以进行如下设置:
> General -> Synchronization -> Save files on frame deactivation 和 Save files automatically if application is idle for .. sec 的勾去掉
> Editor Tabs -> Mark modified tabs with asterisk 打上勾
9.>file and code template>python scripts
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ = '$Package_name'
__author__ = '$USER'
__mtime__ = '$DATE'
# code is far away from bugs with the god animal protecting
I love animals. They taste delicious.
┏┓ ┏┓
┏┛┻━━━┛┻┓
┃ ☃ ┃
┃ ┳┛ ┗┳ ┃
┃ ┻ ┃
┗━┓ ┏━┛
┃ ┗━━━┓
┃ 神兽保佑 ┣┓
┃ 永无BUG! ┏┛
┗┓┓┏━┳┓┏┛
┃┫┫ ┃┫┫
┗┻┛ ┗┻┛
"""
10 python文件默认编码
File Encodings> IDE Encoding: UTF-8;Project Encoding: UTF-8;
11. 代码自动整理设置
这里line breaks去掉√,否则bar, 和baz会分开在不同行,不好看。
4.1.2 File -> Settings -> appearance
1. 修改IDE快捷键方案
> Keymap
1) execute selection in console : add keymap > ctrl + enter
系统自带了好几种快捷键方案,下拉框中有如“defaul”,“Visual Studio”,在查找Bug时非常有用,“NetBeans 6.5”,“Default for GNOME”等等可选项,
因为“Eclipse”方案比较大众,个人用的也比较多,最终选择了“Eclipse”。
还是有几个常用的快捷键跟Eclipse不一样,为了能修改,还得先对Eclipse方案拷贝一份:
(1).代码提示功能,默认是【Ctrl+空格】,现改为跟Eclipse一样,即【Alt+/】
Main menu -> code -> Completion -> Basic -> 设置为“Alt+/”
Main menu -> code -> Completion -> SmartType -> 设置为“Alt+Shift+/”
不过“Alt+/”默认又被
Main menu -> code -> Completion -> Basic -> Cyclic Expand Word 占用,先把它删除再说吧(单击右键删除)!
(2).关闭当前文档,默认是【Ctrl+F4】,现改为跟Eclipse一样,即【Ctrl+W】
Main menu -> Window -> Active Tool Window -> Close Active Tab -> 设置为 “Ctrl+F4”;
Main menu -> Window -> Editor -> Close -> 设置为 “Ctrl+W”;
2.设置IDE皮肤主题
> Theme -> 选择“Alloy.IDEA Theme”
或者在setting中搜索theme可以改变主题,所有配色统一改变
4.1.3 File > settings > build.excution
每次打开python控制台时自动执行代码
> console > pyconsole
import sys # print('Python %s on %s' % (sys.version, sys.platform)) sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS]) import os print('current workdirectory : ', os.getcwd() ) import numpy as np import scipy as sp import matplotlib as mpl
如果安装了ipython,则在pyconsole中使用更强大的ipython
> console
选中use ipython if available
这样每次打开pyconsole就会打开ipython
Note: 在virtualenv中安装ipython: (ubuntu_env) pika:/media/pika/files/mine/python_workspace/ubuntu_env$pip install ipython
4.1.4 File > settings > Languages & Frameworks
如果在项目设置中开启了django支持,打开python console时会自动变成打开django console,当然如果不想这样就关闭项目对django的支持:
如果打开支持就会在 settings > build.excution > console下多显示一个django console:
Django console设置如下
import sys
print('Python %s on %s' % (sys.version, sys.platform))
import django
print('Django %s' % django.get_version())
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
if 'setup' in dir(django): django.setup()
import django_manage_shell; django_manage_shell.run(PROJECT_ROOT)
4.1.5 File > settings > Project : initial project
project dependencies > LDA > project depends on these projects > 选择sim_cluster就可以在LDA中调用sim_cluster中的包
registry禁用命令
来回快速切换中英文输入法(相当于双击shift)的时候,idea会弹出来一个搜索框,很不方便,现在要把那个弹出框禁用掉.
按ctrl+shift+a弹出搜索框输入registry,或者菜单栏>help>registry。找到“ide.suppress.double.click.handler”,将后面的复选框勾上。勾选上复选框后直接点击close,然后双击shift的时候就不会再出现全局搜索框了。
4.2 pycharm提示python版本不支持
Python version 3.5 does not support variable annotations或者python version 2.7 doesn't have module pathlib
但是设置的都是3.6版本。
pycharm有设置系统所有版本的兼容性检查
修复:
editor>inspections>python>code compatibility inspection>选择现在的版本就好。
或者
File --> "Invalidate Caches/Restart".
五、pycharm环境和路径配置
5.1 python解释器路径
用于配置python项目执行的python路径
比如,有的项目是运行的是系统python2.7下的环境;有的是3.4;有的项目使用的是virtualenv的python环境[python虚拟环境配置 - pycharm中的项目配置]
在pycharm > file > settings > project:pythonworkspace > project interpreter > 选择对应项目 > project interpreter中指定python解释器
pycharm中运行configuration有一个选项add content roots to pythonpath
选中后sys.path中会多一整个项目project的路径/media/pika/files/mine/python_workspace,里面的目录就被当成包使用,这样就可以通过from SocialNetworks.SocialNetworks引入不是python包的目录中的文件了。
不过最好使用sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0],"../.."))来添加,这样在pycharm外也可以运行不出错 。
cannot find declaration to go to||CTRL+也不起作用
同目录下,当多个文件之间有相互依赖的关系的时候,import无法识别自己写的模块,PyCharm中提示No Module;pycharm import不能转到。
如from models.base_model import BaseModel
解决步骤:
(1). 打开File--> Setting—> 打开 Console下的Python Console,把选项(Add source roots to PYTHONPAT)点击勾选上
(2). 右键点击自己的工作空间文件夹(对应就是models的上级目录,假设是src),找到Mark Directory as 选择Source Root!
pycharm中进行python包管理
pycharm中的项目中可以包含package、目录(目录名可以有空格)、等等
目录的某个包中的某个py文件要调用另一个py文件中的函数,首先要将目录设置为source root,这样才能从包中至上至上正确引入函数,否则怎么引入都出错:
SystemError: Parent module '' not loaded, cannot perform relative import
Note:目录 > 右键 > make directory as > source root
python脚本解释路径
ctrl + shift + f10 / f10 执行python脚本时
当前工作目录cwd为run/debug configurations 中的working directory
可在edit configurations > project or defaults中配置
console执行路径和当前工作目录
python console中执行时
cwd为File > settings > build.excution > console > pyconsole中的working directory
并可在其中配置
5.2 pycharm配置os.environ环境
pycharm中os.environ不能读取到terminal中的系统环境变量
pycharm中os.environ不能读取.bashrc参数
使用pycharm,无论在python console还是在module中使用os.environ返回的dict中都没有~/.bashrc中的设置的变量,但是有/etc/profile中的变量配置。然而在terminal中使用python,os.environ却可以获取~/.bashrc的内容。
解决方法1:
在~/.bashrc中设置的系统环境只能在terminal shell下运行spark程序才有效,因为.bashrc is only read for interactive shells.
如果要在当前用户整个系统中都有效(包括pycharm等等IDE),就应该将系统环境变量设置在~/.profile文件中。如果是设置所有用户整个系统,修改/etc/profile或者/etc/environment吧。
如SPARK_HOME的设置[Spark:相关错误总结 ]
解决方法2:在代码中设置,这样不管环境有没有问题了
# spark environment settings
import sys, os
os.environ['SPARK_HOME'] = conf.get(SECTION, 'SPARK_HOME')
sys.path.append(os.path.join(conf.get(SECTION, 'SPARK_HOME'), 'python'))
os.environ["PYSPARK_PYTHON"] = conf.get(SECTION, 'PYSPARK_PYTHON')
os.environ['SPARK_LOCAL_IP'] = conf.get(SECTION, 'SPARK_LOCAL_IP')
os.environ['JAVA_HOME'] = conf.get(SECTION, 'JAVA_HOME')
os.environ['PYTHONPATH'] = '$SPARK_HOME/python/lib/py4j-0.10.3-src.zip:$PYTHONPATH'
pycharm配置第三方库代码自动提示
参考[Spark安装和配置]
六、Pycharm实用拓展功能
6.1 插件plugin
Regex Tester是PyCharm的第三方插件,可以测试正则表达式。
安装Regex Tester:Setting-》Plugins-》Browser Repositories-》输入Regex Tester-》点击安装-》重启PyCharm。
进入:点击PyCharm界面左下方的小矩形按钮找到Regex Tester选项点击进入。
界面上方空白处输入正则表达式,下方输入需要查找的字符串,匹配到的字符串背景会被置灰。左上方有一些选项如大小写敏感,多行模式等到。
Regex Tester还提供了Split(查分),Replace(替换)功能等。
6.2 pycharm中清除已编译.pyc中间文件
选中你的workspace > 右键 > clean python compiled files
还可以自己写一个清除代码
6.3 pycharm设置外部工具
删除pyc代码
[python小工具 ]针对当前pycharm中打开的py文件对应的目录删除其中所有的pyc文件。如果是直接运行(而不是在下面的tools中运行),则删除E:\mine\python_workspace\WebSite目录下的pyc文件。
将上面的改成外部工具
PyCharm > preferences > tools > external tools > +添加
Name: DelPyc
program: $PyInterpreterDirectory$/python Python安装路径
Parameters: $ProjectFileDir$/Oth/Utility/DelPyc.py $FileDir$
Work directory: $FileDir$
Note:Parameters后面的 $FileDir$参数是说,DelPyc是针对当前pycharm中打开的py文件对应的目录删除其中所有的pyc文件。
之后可以通过下面的方式直接执行
Note:再添加一个Tools名为DelPycIn
program: Python安装路径,e.g. D:\python3.4.2\python.exe
Parameters: E:\mine\python_workspace\Utility\DelPyc.py
Work directory 使用变量 $FileDir$
参数中没有$FileDir$,这样就可以直接删除常用目录r'E:\mine\python_workspace\WebSite'了,两个一起用更方便
6.4 将目录打包成tar文件
PyCharm > preferences > tools > external tools > +添加
Name: dir2tar
program: tar
Parameters: -zcv -f $FileDirName$.tar.gz $FileDirName$
Work directory: $FileParentDir$
6.5 代码质量
当你在打字的时候,PyCharm会检查你的代码是否符合PEP8。它会让你知道,你是否有太多的空格或空行等等。如果你愿意,你可以配置PyCharm运行pylint作为外部工具。
6.6 python2转python3最快方式
/usr/bin/2to3 -wn $FileDir$
这样在pycharm中打开某个文件,右键external tools > py2topy3就可以瞬间将当前文件所在目录下的所有py2转换成py3,是不是很机智!