安装python的集成开发环境
windows下安装
可安装wingide, 或者pycharm 。以wingide为例,至官网下载最对应版本,里面已经集成了python内核和对应的开发调试界面,如python-2.5.2+wingide-101-3.2.13-1。先装python后装wingide,采用默认设置,wingide装在python的安装目录内,则能成功。
但是python只具备基本的功能包,像numpy,matplotlib这些还需要自己安装。也可以安装anaconda,该软件已经预装了一个科学统计和机器学习的相关库,操作会更简单一点。
ubuntu下安装
ubuntu下系统已经预装了两个版本的python内核,分别是python2.7和python3.5。为了方便使用我们可以安装IPYHTON这类简单的开发界面(调试功能需要自己另外安装相关库进行配置),也可以安装pycharm这类开发环境,网上都有免费版。
安装方法,先到官网下载linux版本的二进制安装文件,该类安装文件以.tar.gz为后缀,如pycharm-community-2017.2.4.tar.gz。然后将文件解压缩至想安装的位置。由于linux用户权限的问题,直接在下载文件位置无法解压文件至目标位置。需要先进入目录位置,如cd /usr
,然后将安装文件复制过来cp ~/下载/pycharm-community-2017.2.4.tar.gz ./
。然后再解压缩文件,tar -xf pycharm-community-2017.2.4.tar.gz
。然后再将pycharm安装路径,添加至环境变量,
sudo gedit /etc/profile
在文件中添加如下代码
export PYCHARM_HOME=/usr/pycharm-community-2017.2.4
export PATH=$PATH:$PYACHARM_HOME/bin
首次运行pycharm,需要到运行sh bin/pycharm.sh,以后就可以直接在dash里输入pycharm就会显示pycharm的图标,点击图标即可运行pycharm。此时就可以进行pycharm的开发和使用了。
在pycharm新建项目时注意选择合适的翻译器,如python3
关于pycharm的使用和设置,可参考该博文,里面有详细的介绍。
安装自己需要的python库
windows下安装
到相应功能包的官网(直接网上搜XXX包下载即会出现)下载与python版本一致的库。
exe格式包安装
exe格式的安装文件,下载后直接点击安装即可,一般不需要什么配置。
便慢慢地exe格式的安装文件都没有了。
源文件安装
准备工作:首先将python路径加到系统环境变量中去,否则系统找不到python,并重启系统,设置才能生效;安装setuptools,setuptools是安装其他包的基础;
安装方法:1、在cmd中进入源文件解压后的目录(cd…是返回目录上一级,cd XX是进入该目录,最好将解压后的文件放到python目录下这样文件不会太乱,当然不放一起也不影响功能),2、执行 python setup.py install即完成相应包的安装,有可能会存在包依赖,此时去安装缺少的那个包即可,其他包安装方法一样。3、检验包是否安装成功,可到python下载入对应包,并运行一些代码,如果python已打开,可能新安装的包不能载入成功,关闭python重启即可
关于python中的setup.py
confusion with results of python setup.py install --user
wheel安装法
一、安装wheel
首先通过pip命令安装wheel,都是cmd进入window命令终端后进行的。
如果提示"’pip’不是内部或外部命令,也不是可运行的程序或批处理文件",可以如下处理:
①将python安装目录下的scripts目录(例如D:\Python27\Scripts)添加到系统环境变量path里,注意前加分号。再执行该命令
pip install wheel
②在cmd下进入到D:\Python27\Scripts目录下执行该命令
pip install wheel
二.安装whl文件格式的库
①如果将D:\Python27\Scripts目录添加到path中,可以直接在whl文件所在目录用管理员打开一个cmd窗口,直接执行下面的语句。
pip install python_dateutil-2.5.3-py2.py3-none-any.whl
②否则的话,需要在D:\Python27\Scripts目录下用管理员打开cmd,运行pip命令,文件名应该写全路径)
pip install C:\Users\xxx\Downloads\python_dateutil-2.5.3-py2.py3-none-any.whl
ubuntu下安装
一种方法是直接在命令终端运行sudo apt install python3-库名
,好像有少数的包只能这些操作,当然pip包是要用这种方法先安装的;
一种方法是在命令终端用pip命令安装,sudo pip install 库名
;但是由于这些源一般都国外的源,网络等方面的原因可能会导致安装很慢或不成功。我们可以自己更改源。意外发现有一个豆瓣的源,网速飞快还几乎不会失败。
第三种方法是源码安装,或egg文件安装只操作过一次。
解压缩,进入目录
tar -xzvf pyhs2-0.3.2.tar.gz
cd pyhs2-0.3.2
执行安装命令(这里可选择在不同的版本中安装,比如,系统默认是python2,那么python setup.py install 则会在系统python中安装该库,如果自己安装在python3,那么可以python3 setup.py install则会在python3中安装该库)
python setup.py install
等待安装完成
安装完成后,会在site-packages目录生成一个.egg文件,而原来的源码解压目录则可以删除
.egg文件
egg文件是一种打包,后缀名可以改成rar,直接解压缩,按照源码的形式安装
一种最简单的安装方法就是把egg文件和egg文件解压出来的文件夹直接复制到Python的第三方库文件夹..Lib\site-packages中
第四种方法是下载相应版本的whl文件,然后pip install wheel 就可以安装wheel。
sudo pip3 install -i https://pypi.doubanio.com/simple/ 包名
阿里云的链接
sudo pip3 install -i http://mirrors.aliyun.com/pypi/simple/
windows平台下比较详细的wheel包:
Unofficial Windows Binaries for Python Extension Packages
国外的资源:
Unofficial Windows Binaries for Python Extension Packages
https://www.lfd.uci.edu/~gohlke/pythonlibs/
(可预先安装好numpy、Scipy、Pandas、Scikit-Learn、Matplotlib、NLTK、pyspark、scrapy、collections(这个似乎是python自带的库) )、seaborn 、kafka-python、hdfs、PyMySQL、tables=3.3.0、jupyter、statsmodels等
下面也是一些可以先安装好的库,其他一些为基本库,
sudo apt-get install autoconf curl libmysqld-dev libaio-dev libjpeg62-dev libpng12-dev libfreetype6-dev libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libgdbm-dev
sudo apt-get install sqlite3 libsqlite3-tcl libsqlite3-dev
sudo apt-get install python-bsddb3
删除指定的模块或者包
pip uninstall xxx
python升级
查看Python版本
python –V
可以看到系统目前自带的python版本
1、切换到下载文件的目录中(此目录可以自定义)
如
/home/qjzh/miniconda/envs/water_meter2/downloads
2、进入 Python下载页面,选择需要的版本。
这里选择的版本是 3.5.2
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
或者使用清华站点的资源
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/python-3.5.2-0.tar.bz2
使用wget下载的前提是系统已经安装wget
debian 或者 ubuntu : sudo apt-get install wget
centos : sudo yum -y install wget
也可以用xshell将下载好的软件上传到服务器上。
下载的文件在当前的文件夹内
3、解压安装,命令如下:
tar -xvf Python-3.5.2.tgz
4、切换到源码包
cd Python-3.5.2
5、配置指定python的安装目录
./configure --prefix=/usr/local/python3
如果执行 ./configure 时,如果报错:
configure: error: no acceptable C compiler found in $PATH
说明没有安装合适的编译器。这时,需要安装/升级 gcc 及其它依赖包。
yum install make gcc gcc-c++
完成之后,重新执行:
./configure
6、编译和安装python
配置完成之后,就可以编译了:
make
漫长的等待……完成后,安装:
make install
7、备份原有的老版本python
执行如下的指令:
ls -al /usr/bin | grep python
结果如下:
-rwxr-xr-x. 1 root root 11216 12月 1 2015 abrt-action-analyze-python
lrwxrwxrwx. 1 root root 7 8月 30 12:11 python -> python2
lrwxrwxrwx. 1 root root 9 8月 30 12:11 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 python2.7
从上面的结果可以看到 python 最终链接的是 python 2.7,所以,执行 python 就相当于执行 python 2.7。
备份的老版本号
mv /usr/bin/python /usr/bin/python.old
此时python.old没有指向,而python2也失去了指向,python2会变红表示有问题。后面重新指定python的的链接后又会恢复正常。
8、创建软链接指向
ln -s /usr/local/python3/bin/python3 /usr/bin/python
上式中,/usr/local/python3/bin/python3是指向了可执行文件/usr/local/python3/bin/python3.5,所以最终/usr/bin/python也指向了/usr/local/python3/bin/python3.5
如果在linux shell里输入python显示的版本仍然是其他版本的话,有可能是因为在环境变量里有几个版本的python路径,比如我开始里安装了miniconda,并将miniconda/bin添加到环境变量里了,echo $PATH的时候可以看到path里即有miniconda/bin而且排在系统的/usr/bin之前,这时在linux shell里输入python时就先启动miniconda/bin对应的版本,相当于把系统默认的python版本变成了miniconda/bin对应版本。
9、 修改yum配置(否则yum无法正常运行)
更新python过程中,我们有一步是备份原有的老版本python,原因就是系统的很多基本的命令、软件包都要依赖预装的老版本python的,比如yum,千万不要把老版本的删除!新老版本是可以共存的。
升级玩Python后我们再使用yum命令,发现已经不能使用了,处理方法也很简单
vim /usr/bin/yum
把文件头部的
#!/usr/bin/python
改成之前我们备份的老版本号
#!/usr/bin/python.old
如若有其他命令、软件不能正常使用,仿照yum配置文件的修改方法修即可。
如果觉得这样升级对系统的原来软件的影响太大的话,可以不采用这种升级方法,只是新安装一个的版本,具体做法是:
上面步骤基本一样,但是不要动/usr/bin/python,创建软链接指向的时候,不要指到/usr/bin/python即可,如指向:/usr/bin/python3.5
ln -s /usr/local/python3/bin/python3 /usr/bin/python3.5
接下来自己在开发的时候,在文件头使用#!/usr/bin/python3.5就行了
安装pip
Pip是一个安装和管理python包的工具。
安装方法如下:
- 下载pip,地址 https://bootstrap.pypa.io/get-pip.py
- 执行安装命令
yum install setuptool zlib* -y
python get-pip.py
- 创建连接(否则会报错提示“命令不存在”)
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
或者我们也可以将自己版本的pip重命名并链接到/usr/bin下
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
测试:
至此pip安装完成!
如果安装pip时报如下错误:ImportError: cannot import name HTTPSHandle
执行 yum install sqlite-devel
python离线升级
安装python之前可能需要的一些依赖:
需要连网,但是集群环境可能不能上网,这时就需要用代理。运维设置好代理后,需要如下使集群机器能上网。
http_proxy="172.21.96.131:808"
export http_proxy
可能需要先安装安装几个包,以方便后续的操作 ➜ yum install wget gcc make ➜ # wget 用于下载源码包 ➜ # gcc 和 make 用于编译
yum -y install zlib*
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel
解释:➜ # 解决 import bz2 报错 ➜ yum install bzip2-devel ➜ # 解决 import curses 报错 ➜ yum install ncurses-devel ➜ # 解决 import sqlite3 报错 ➜ yum install sqlite-devel ➜ # 解决 _dbm _gdbm 缺失提醒 ➜ yum install gdbm-devel ➜ # 解决 _lzma 缺失提醒 ➜ yum install xz-devel ➜ # 解决 _tkinter 缺失提醒 ➜ yum install tk-devel ➜ # 解决 readline 缺失提醒及方向键行为非预期的问题 ➜ yum install readline-devel
如果网络有问题:先查集群与代理之间的连接,确保没问题后,可能是源的问题,试试 yum --disablerepo=pgdg10 install XXXX
离线安装:需要将python安装文件和相关的库发送的各节点
scp ./Python-3.5.2.tgz root@bigdata-master:/home/bigdata/downloadtemp
scp ./pylibrary.tgz root@bigdata-master:/home/bigdata/downloadtemp
库的安装顺序如下:因为库之间也会有依赖关系
numpy-1.13.3
scipy-1.0.0
pandas-0.21.1 python-dateutil-2.6.1 pytz-2017.3 six-1.11.0
Scikit-Learn-0.19.1
Matplotlib-2.1.1 cycler-0.10.0 pyparsing-2.2.0
NLTK-3.2.5
seaborn-0.8.1
kafka-python-1.3.5
py4j-0.10.4 pyspark-2.2.0
sudo pip3 install numpy-1.14.6-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install scipy-1.0.0rc1-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install six-1.11.0-py2.py3-none-any.whl
sudo pip3 install pytz-2017.3-py2.py3-none-any.whl
sudo pip3 install python_dateutil-2.4.0-py2.py3-none-any.whl
sudo pip3 install pandas-0.21.1-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install scikit_learn-0.20.0-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install cycler-0.10.0-py2.py3-none-any.whl
sudo pip3 install pyparsing-2.2.0-py2.py3-none-any.whl
sudo pip3 install matplotlib-2.1.1-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install kafka-1.3.5-py2.py3-none-any.whl
sudo pip3 install py4j-0.10.4-py2.py3-none-any.whl
sudo pip3 install PyMySQL-0.8.0-py2.py3-none-any.whl
SQLAlchemy-1.2.12.tar pandas.dataframe直接存mysql需要
安装hdfs==2.1.0依赖requests>=2.7.0和docopt;而requests>=2.7.0依赖idna<2.6,>=2.5和certifi>=2017.4.17和chardet<3.1.0,>=3.0.2和urllib3<1.22,>=1.21.1;
下载:idna-2.5-py2.py3-none-any.whl,certifi-2017.11.5-py2.py3-none-any.whl,chardet-3.0.4-py2.py3-none-any.whl,urllib3-1.21.1-py2.py3-none-any.whl,requests-2.16.0-py2.py3-none-any.whl,docopt-0.6.0.tar,hdfs-2.1.0.tar
sudo pip3 install idna-2.5-py2.py3-none-any.whl
sudo pip3 install certifi-2017.11.5-py2.py3-none-any.whl
sudo pip3 install chardet-3.0.4-py2.py3-none-any.whl
sudo pip3 install urllib3-1.21.1-py2.py3-none-any.whl
sudo pip3 install requests-2.16.0-py2.py3-none-any.whl
cd /usr/local/python35/lib/python3.5/site-packages/docopt-0.6.0
sudo python3 setup.py install
hdfs-2.1.0.tar.gz
cd /usr/local/python35/lib/python3.5/site-packages/hdfs-2.1.0
sudo python3 setup.py install
pyspark 依赖pypandoc,如果没有联网,可能需要先下载安装该库,pypandoc依赖wheel>=0.25.0
sudo pip3 install wheel-0.33.2-py2.py3-none-any.whl
sudo cp /home/bigdata/downloadtemp/pylibrary/pypandoc-1.4.tar.gz /usr/local/python35/lib/python3.5/site-packages
sudo cp /home/bigdata/downloadtemp/pylibrary/pyspark-2.2.0.post0.tar.gz /usr/local/python35/lib/python3.5/site-packages
cd /usr/local/python35/lib/python3.5/site-packages
sudo tar -zxf pyspark-2.2.0.post0.tar.gz
cd pyspark-2.2.0
sudo python setup.py install
tar -zxf nltk-3.2.5.tar.gz
cd nltk-3.2.5
sudo python3 setup.py install
#tables-3.3.0依赖numexpr>=2.5.2
sudo pip3 install numexpr-2.6.8-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install tables-3.3.0-cp35-cp35m-manylinux1_x86_64.whl
#statsmodel依赖patsy
sudo pip3 install patsy-0.5.1-py2.py3-none-any.whl
sudo pip3 install statsmodels-0.9.0-cp35-cp35m-manylinux1_x86_64.whl
#jupyte notebook
sudo pip3 install decorator-4.4.0-py2.py3-none-any.whl
sudo pip3 install ipython_genutils-0.2.0-py2.py3-none-any.whl
sudo pip3 install traitlets-4.3.2-py2.py3-none-any.whl
sudo pip3 install MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install Jinja2-2.9.6-py2.py3-none-any.whl
sudo pip3 install entrypoints-0.3-py2.py3-none-any.whl
sudo pip3 install jupyter_core-4.0.4-py2.py3-none-any.whl
tornado-6.0.2.tar.gz
sudo pip3 install wcwidth-0.1.7-py2.py3-none-any.whl
backcall-0.1.0.tar.gz
sudo pip3 install prompt_toolkit-2.0.9-py3-none-any.whl
sudo pip3 install parso-0.4.0-py2.py3-none-any.whl
sudo pip3 install jedi-0.13.3-py2.py3-none-any.whl
sudo pip3 install ptyprocess-0.6.0-py2.py3-none-any.whl
sudo pip3 install pexpect-4.7.0-py2.py3-none-any.whl
sudo pip3 install Pygments-2.4.0-py2.py3-none-any.whl
sudo pip3 install pickleshare-0.7.5-py2.py3-none-any.whl
sudo pip3 install ipython-7.5.0-py3-none-any.whl
sudo pip3 install pyzmq-18.0.1-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install jupyter_client-5.2.4-py2.py3-none-any.whl
sudo pip3 install ipykernel-5.1.0-py3-none-any.whl
sudo pip3 install jupyter_console-6.0.0-py2.py3-none-any.whl
tar -xf pyrsistent-0.14.0.tar.gz
cd pyrsistent-0.14.0/
sudo python3 setup.py install
sudo pip3 install attrs-19.1.0-py2.py3-none-any.whl
sudo pip3 install jsonschema-3.0.1-py2.py3-none-any.whl
sudo pip3 install nbformat-4.4.0-py2.py3-none-any.whl
sudo pip3 install mistune-0.8.4-py2.py3-none-any.whl
sudo pip3 install webencodings-0.5.1-py2.py3-none-any.whl
sudo pip3 install bleach-3.1.0-py2.py3-none-any.whl
sudo pip3 install testpath-0.4.2-py2.py3-none-any.whl
tar -xf pandocfilters-1.4.2.tar.gz
cd pandocfilters-1.4.2
sudo python3 setup.py install
sudo pip3 install defusedxml-0.6.0rc1-py2.py3-none-any.whl
sudo pip3 install nbconvert-5.5.0-py2.py3-none-any.whl
sudo pip3 install Send2Trash-1.5.0-py3-none-any.whl
tar -xf Theano-1.0.1.tar.gz
cd Theano-1.0.1
sudo python3 setup.py install
sudo pip3 install terminado-0.8.2-py2.py3-none-any.whl
sudo pip3 install jupyter_core-4.4.0-py2.py3-none-any.whl
tar -xf prometheus_client-0.6.0.tar.gz
cd prometheus_client-0.6.0
sudo python3 setup.py install
sudo pip3 install notebook-5.7.8-py2.py3-none-any.whl
sudo pip3 install qtconsole-4.4.4-py2.py3-none-any.whl
sudo pip3 install widgetsnbextension-3.4.2-py2.py3-none-any.whl
sudo pip3 install ipywidgets-7.4.1-py2.py3-none-any.whl
sudo pip3 install six-1.11.0-py2.py3-none-any.whl
sudo pip3 install html5lib-1.0.1-py2.py3-none-any.whl
sudo pip3 install python_dateutil-2.4.0-py2.py3-none-any.whl
sudo pip3 install colorama-0.4.1-py2.py3-none-any.whl
sudo pip3 install jupyter-1.0.0-py2.py3-none-any.whl
#读取parquet格式数据需求
sudo pip3 install pyarrow-0.11.0-cp35-cp35m-manylinux1_x86_64.whl
# lightgbm
sudo pip3 install lightgbm-2.2.3-py2.py3-none-manylinux1_x86_64.whl
# xgboost
sudo pip3 install xgboost-0.82-py2.py3-none-manylinux1_x86_64.whl
# seaborn相关
sudo cp ~/download_temp/pylibrary/seaborn-0.8.1.tar.gz /usr/local/python3/lib/python3.5/site-packages
cd /usr/local/python3/lib/python3.5/site-packages
sudo tar -xf seaborn-0.8.1.tar.gz
cd seaborn-0.8.1
sudo python3 setup.py install
#图像相关
unzip networkx-2.2rc1.zip
cd networkx-2.2rc1
sudo python3 setup.py install
sudo pip3 install Pillow-6.0.0-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install PyWavelets-1.0.3-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install imageio-2.5.0-py3-none-any.whl
sudo pip3 install scikit_image-0.15.0-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install opencv_python-4.1.0.25-cp35-cp35m-manylinux1_x86_64.whl
[ImportError: libSM.so.6: cannot open shared object file: No such file or directory解决](https://blog.csdn.net/roxxo/article/details/87166706)
[CentOS 使用opencv-python 出现ImportError: libSM.so.6等一系列错误](https://blog.csdn.net/weixin_42173719/article/details/102746312)
sudo pip3 install torch-1.1.0-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install tqdm-4.19.9-py2.py3-none-any.whl
sudo pip3 install torchvision-0.2.2-py2.py3-none-any.whl
# keras
# tensorflow相关的包
Successfully installed absl-py-0.7.0 astor-0.7.1 gast-0.2.2 grpcio-1.18.0 h5py-2
.9.0 keras-applications-1.0.6 keras-preprocessing-1.0.5 markdown-3.0.1 protobuf-
3.6.1 tensorboard-1.12.2 tensorflow-1.12.0 termcolor-1.1.0 werkzeug-0.14.1 wheel
-0.32.3
tar -xf absl-py-0.7.0.tar.gz
cd absl-py-0.7.0
sudo python3 setup.py install
cd ..
sudo pip3 install astor-0.7.1-py2.py3-none-any.whl
tar -xf gast-0.2.2.tar.gz
cd gast-0.2.2
sudo python3 setup.py install
cd ..
sudo pip3 install grpcio-1.18.0-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install h5py-2.9.0-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install Keras_Applications-1.0.6-py2.py3-none-any.whl
sudo pip3 install Keras_Preprocessing-1.0.5-py2.py3-none-any.whl
sudo pip3 install Markdown-3.0.1-py2.py3-none-any.whl
sudo pip3 install protobuf-3.6.1-cp35-cp35m-manylinux1_x86_64.whl
sudo pip3 install Werkzeug-0.14.1-py2.py3-none-any.whl
tar -xf termcolor-1.1.0.tar.gz
cd termcolor-1.1.0
sudo python3 setup.py install
cd ..
sudo pip3 install tensorboard-1.12.2-py3-none-any.whl
sudo pip3 install google_pasta-0.1.6-py3-none-any.whl
sudo pip3 install tf_estimator_nightly-1.14.0.dev2019030115-py2.py3-none-any.whl
sudo pip3 install tb_nightly-1.14.0a20190301-py3-none-any.whl
sudo pip3 install tensorflow-2.0.0a0-cp35-cp35m-manylinux1_x86_64.whl
tensorflow依赖:
tar -xf keras_applications.tar
tar -xf Keras_Applications-1.0.8.dist-info.tar
tar -xf keras_preprocessing.tar
tar -xf Keras_Preprocessing-1.1.0.dist-info.tar
tar -xf termcolor-1.1.0.dist-info.tar
tar -xf astor.tar
tar -xf astor-0.8.0.dist-info.tar
tar -xf gast.tar
tar -xf gast-0.2.2.dist-info.tar
tar -xf wrapt.tar
tar -xf wrapt-1.11.2.dist-info.tar
tar -xf absl.tar
tar -xf absl_py-0.8.0.dist-info.tar
tar -xf google.tar
tar -xf google_pasta-0.1.7.dist-info.tar
tar -xf tensorflow.tar
tar -xf tensorflow_estimator.tar
tar -xf tensorflow_estimator-1.14.0.dist-info.tar
tar -xf tensorflow-1.14.0.dist-info.tar
tar -xf DBUtils-1.3.tar.gz
cd DBUtils-1.3
sudo python3 setup.py install
cd ..
#Flask相关
sudo pip3 install click-6.6-py2.py3-none-any.whl
sudo pip3 install itsdangerous-1.1.0-py2.py3-none-any.whl
sudo pip3 install Flask-0.12.1-py2.py3-none-any.whl
sudo pip3 install Flask_MySQL-1.4.0-py2.py3-none-any.whl
#网页测试
sudo pip3 install urllib3-1.21.1-py2.py3-none-any.whl
sudo pip3 install selenium-3.4.3-py2.py3-none-any.whl
修改python链接后可能出现的问题:
在执行yum命令时忽然发现出现以下报错:
# yum list
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
原因:
这是因为yum采用Python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 7自带的yum采用的是python2.7,当系统将python升级到3.4后,出现语法解释错误。
解决办法:
一是升级yum。
二是修改yum的解释器为旧版本python2.7,即将连接文件/usr/bin/python连接回/usr/bin/python2.7。治标不治本,不推荐。
三是在设置里更改解释器设置,即修改/usr/bin/yum文件,指定使用python2.7作为yum的解释器:
# vi /usr/bin/yum
将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"即可。
安装软件时又会出现另一种报错
Downloading packages:
File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e:
^
SyntaxError: invalid syntax
问题与前面一个一样,因此解决办法也是一样的:
# vim /usr/libexec/urlgrabber-ext-down
将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"即可。
linux devel包 和 非devel包的区别
关于rpm的后缀devel的含义
RPM repository on fr2.rpmfind.net
python独立环境的离线自动安装
整个考虑是这样(还没试):
先通过脚本安装像gcc 、bzip2等系统需要的软件(可先下载好这些包);
然后通过脚本安装conda(先下载好安装包)
再通过conda 在虚拟环境中安装离线下载好的python压缩文件(这一步似乎不行)
最后在conda创建的虚拟环境中安装相应的python库
关于通过脚本自动安装软件可参考:python自动化脚本安装指定版本python环境详解
离线安装独立环境的python的投机方法
需要独立环境是因为同一机器上可能因为各种原因需要不同版本的python,一般linux系统默认的python版本较低,安装其他版本的时候我们最好不要把/usr/bin下的python链接的对象改变,因为像yum这类系统命令可能依赖于原来版本的python
需要离线安装是因为在搭建集群环境的时候,可能服务器是不能连网的。
可在一台连网的电脑上安装好自己需要的python版本,及可能要用到的python库(这一步不防装全一点),然后将安装目录直接打包,发送到需要安装python的机器。直接解压缩即可,一般此时进入到解压后的bin目录,运行相应的python,就可以启动python,表明python是可用的,如果提示缺少gcc之类的依赖,自己下载即可。
如果用特定版本的python来运行自己的python程序
这里没有修改/usr/bin下的python链接
- 如果是一般python文件,直接XXXpython yy.py
- 如果是通过spark-submit提交,通过在系统变量里设置PYSPARK-PYTHON=/XX/YY/python,这样提交应用时,spark就知道使用特定版本的python来运行了。
也可以使用下面的方法(具体没有尝试)
不要改系统默认的 python。python 2/3不兼容。很多系统级别的软件依赖于默认的python版本的。一旦修改,可能导致一些系统命令出错。
在你自己的项目里面,你可以使用完整路径选择版本。比如/usr/bin/python2.7
, /usr/bin/python3.4
, /opt/python3.5/bin/python
之类的。
更多参考:
python引入导入自定义模块和外部文件
crontab中运行python程序出错,提示ImportError: No module named解决全过程
/usr/loca/bin/python XXX.python而不是python XXX.python
或者将XXX.python修改为可执行文件,在python头部#!/usr/local/bin/python
#!/usr/bin/python3 和 #!/usr/bin/env python3 的区别
#!/usr/bin/env python3 会去环境设置寻找 python3 目录,推荐这种写法。
测试相关库是否能用
测试numpy是否安装成功
import numpy
x=numpy.arange(0,5,0.1)
y=numpy.sinh(x)
print(x)
print(y)
测试matplotlib是否安装成功
import numpy
import matplotlib.pyplot as plt
x=numpy.arange(0,5,0.1)
y=numpy.sinh(x)
plt.plot(x,y)
plt.show()
import 缺省会从python目录,site-pacakges,系统目录,当前目录,等按顺序尝试找包
如何查看PYTHON的安装位置以及安装第三方库的位置
import sys
sys.path
结果如下:
['', '/usr/local/python3/lib/python35.zip', '/usr/local/python3/lib/python3.5', '/usr/local/python3/lib/python3.5/plat-linux', '/usr/local/python3/lib/python3.5/lib-dynload', '/usr/local/python3/lib/python3.5/site-packages']
中文乱码问题
1、Wing IDE 中文显示方法
中文乱码解决:
找到安装目录,在 “bin\gtk-bin\etc\pango” , 打开" pango.aliases" ,将引号内的文字修改为:microsoft yahei.即可.如下:
courier = "simsun"
sans = "simsun"
serif = "simsun"
monospace = "simsun"
simsun为宋体的一种
另一种解决方案
FILE_OBJECT= open(‘order.log’,‘r’, encoding=‘UTF-8’)
2、在python文件的开始加
# -*- coding: UTF-8 -*-
2、ubuntu里pycharm好像还没碰到中文筹码的问题
关于库的一些常见问题
ImportError: No module named _tkinter
在Linux下使用Tkinter库,出现如下问题
File "/usr/local/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
_tkinter是和tkinter的一个内部功能,tkinter在python3之前的版本为TKinter,python3之后的版本为tkinter。该库好像是跟图形显示有关,是matplotlib和seaborn的基础库,缺少tkinter库matplotlib和seaborn无法工作。正常来讲python是应该默认安装了该库的,但不知道是版本切换的原因,还是什么,出现上述的问题。可能是切换python版本之后配置出现错乱,找不到相应库的安装位置;或者安装新的东西破坏了原有的功能。总之,可能理解为tkinter未安装或安装不全(tkinter又要用到tcl)。
解决的办法就是重新安装
安装tkinter
sudo apt-get install python3-tk
该库好像就不能通过pip方式安装,在安装该库的过程如果出现问题,先不用管,一路安装即可。
安装tcl和tk
tcl和tk的下载地址:http://www.tcl.tk/software/tcltk/download.html
下载的tcl/tk源代码包是 tcl8.6.7-src.tar.gz 和 tk8.6.7-src.tar.gz
(1) 安装tcl
由于我不知道像这种库的安装位置是否有要求,所以我采用了比较保守的方法,没有直接在源代码包的下载位置直接解压缩安装。我发现在运行python文件并报错的时候有如下提示:
大概就是说_tkinter在/usr/local/lib/tcl8.6/ 下找不到×××,在/usr/local/lib/tk8.6/ 下找不到×××。
从上面就可以看到python会自动去一些目录里找对应的程序,所有我就把这些目录当成是python系统自动安装的目录。因此我将文件复制到该目录并解压缩进行安装。目的就是用自己下载的包去替换python自己的或者python没有安装里就在对应位置安装。
具体安装tcl方法如下:
sudo tar -xzvf tcl8.6.7-src.tar.gz
sudo mv tcl8.6.7 tcl8.6
cd tcl8.6/unix
sudo ./configure
sudo make
sudo make install
同样的方法安装tk:
sudo tar -xzvf tk8.6.7-src.tar.gz
sudo mv tk8.6.7 tk8.6
cd tk8.6/unix
sudo ./configure
sudo make
sudo make install
编译时如果出现以下错误信息:
/home/cryhelyxx/下载/tk8.6.1/unix/../generic/tk.h:96:25: 致命错误: X11/Xlib.h:没有那个文件或目录
编译中断。
在终端运行
sudo apt-get install libx11-dev
然后再重新make和makeinstall。
到python里试着import tkinter,没提示应该就成功了。
此时应该可以使用matplotlib和seaborn了。
导入sqlite3这个包的时候出现找不到包的错误
解决方法。
第一种:
检查自己有没有安装sqlite-devel,没有的话yum -y install sqlite-devel
然后进入到Python目录,(cd python目录)
然后命令行输入./configure,然后make和make install
这个时候可以输入python,进入python环境后,import sqlite3,看还会不会报错。
如果还会的话,请看第二种方法,我是通过第二种解决的。
第二种:
在命令行下,输入
find / -name _sqlite3.so,查看这个文件的路径,记下来
然后输入python,在python环境下,
import sys
sys.path
查看自己python包的路径都在哪,找到/lib/python3.5/lib-dynload类似于这种路径
接下来
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /root/.virtualenvs/py3scrapy/lib/python3.5/lib-dynload/
当然这上面这两个路径是你们自己的路径,要自己看看自己的是哪个。
这个时候可以输入python,进入python环境后,import sqlite3,看还会不会报错。
“cannot import name ‘opentype’ on new installation”**
解决方法。
pip install --upgrade google-auth-oauthlib
Python程序代码隐藏和pyc包的导入
1.用pyc或pyo文件代替
2.混淆源代码
3.pyexe、PyInstaller、py2app等打包软件
4.Cython
python 查看各种库源代码
1、
懒人查看python源码方法
python怎么看package源码
import module_name
with open(str(module_name.__file__),"r") as f:
print (f.read())
以numpy为例
numpy.__file__
会得到C:\Users\qingt\Miniconda2\envs\python35\lib\site-packages\numpy\__init__.py
,从而上式得到的也就是__init__.py
中的代码。
以string为例
string.__file__
会得到C:\Users\qingt\Miniconda2\envs\python35\lib\string.py
,从而上式得到的也就是string.py
中的代码。
string.py就是package的源码,不过有些库因为是c写的,会提示错误,这样的库就需要你下载python源码,直接看c的源文件
如果查看不到,可能已经融入到解释器了(比如sys模块),或者可能是使用C语言写成的。
print(math.__file__)
,则提示AttributeError: module 'math' has no attribute '__file__'
print(cmath.__file__)
,则提示AttributeError: module 'cmath' has no attribute '__file__'
2、利用pdb调试查看
python 源代码查看方法
3、利用help()查看
查看python源代码所依赖的模块
python安装包的制作
Python模块常用的几种安装方式
Python简单安装包制作
如何给自己的Python项目制作安装包
如何制作pip安装包 --python
照着上面的博客做就可以了
setup.py编译命令
% python setup.py build #编译
% python setup.py install #安装
% python setup.py sdist #制作分发包,生成类似 bee-0.0.1.tar.gz,支持 pip
% python setup.py bdist_wheel #whl
% python setup.py bdist_wininst #制作windows下的分发包 exe
% python setup.py bdist_rpm
% python setup.py bdist_egg # 生成类似 bee-0.0.1-py2.7.egg,支持 easy_install
杂
AttributeError: module ‘sympy’ has no attribute ‘polys’
AttributeError: module ‘distutils‘ has no attribute ‘version‘ 解决方案
Faiss安装之问题重重
经验证,该方法可以在windows上执行成功:
conda install -c conda-forge faiss-gpu cudatoolkit=11.4