这两天在安装Pytorch-lightning库的时候遇到了很多困难,好在终于装上了,记录一下过程,希望能帮助到遇到同样问题的人。
网上所有的帖子都是通过
pip install pytorch-lightning
直接安装就好了,如果都是这么顺利,那就不用看下面内容了。
我这样安装是报错的,
我是用sudo pip3 install pytorch-lightning安装(按照网上的安装方式使用pip对我是个误导)
从报错中我发现提示我需要使用python3.6+,我的版本是python3.5(上面这两个问题花费了我一天的时间才发现)
下面是python3.5 升级到3.6的过程
1.下载源码
cd /optwget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
tar -xvf Python-3.6.3.tgz
2.编译安装(如果没有权限需要sudo)
cd Python-3.6.3
./configure
makemake install
安装过程中如果遇到下面错误
zipimport.ZipImportError: can't decompress data; zlib not available
就安装依赖包
apt-get install zlib1g-dev
再次 make && make install
验证版本
# python3.6 -VPython 3.6.3
版本替换
现在系统中已经有3个 Python 版本
python -V
python3 -Vpython3.6 -V
需要把 python3 命令转向 python3.6
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.6 2
update-alternatives --config python3
会有下面提示:
There are 2 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/local/bin/python3.6 2 auto mode
1 /usr/bin/python3.5 1 manual mode
2 /usr/local/bin/python3.6 2 manual mode
Press <enter> to keep the current choice[*], or type selection number:
按回车就可以,验证版本
# python3 -V
Python 3.6.3
升级后使用 pip3 安装软件,会有下面错误
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/local/lib/python3.6/site-packages/pip/commands/install.py", line 272, in run
with self._build_session(options) as session:
File "/usr/local/lib/python3.6/site-packages/pip/basecommand.py", line 72, in _build_session
insecure_hosts=options.trusted_hosts,
File "/usr/local/lib/python3.6/site-packages/pip/download.py", line 329, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python3.6/site-packages/pip/download.py", line 93, in user_agent
from pip._vendor import distro
File "/usr/local/lib/python3.6/site-packages/pip/_vendor/distro.py", line 1050, in <module>
_distro = LinuxDistribution()
File "/usr/local/lib/python3.6/site-packages/pip/_vendor/distro.py", line 594, in __init__
if include_lsb else {}
File "/usr/local/lib/python3.6/site-packages/pip/_vendor/distro.py", line 931, in _get_lsb_release_info
raise subprocess.CalledProcessError(code, cmd, stdout, stderr)
subprocess.CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1.
重点是 lsb_release,查找 lsb_release.py 并把它复制到 python3.6 的 lib 里即可
# find / -name 'lsb_release.py'
/usr/lib/python3/dist-packages/lsb_release.py
/usr/lib/python2.7/dist-packages/lsb_release.py
/usr/share/pyshared/lsb_release.py
# find /usr -name python3.6
/usr/local/bin/python3.6
/usr/local/lib/python3.6
# cp /usr/lib/python3/dist-packages/lsb_release.py /usr/local/lib/python3.6/
使用下面方式安装
sudo pip3 install pytorch-lightning
pip3 install 出现Could not fetch URL https://pypi.python.org/
原因是被强了参考https://www.cnblogs.com/jonnyan/p/9181031.html
过指定国内镜像源来安装: pip --trusted-host 镜像源 install 模块名 -i 镜像源路径
例如:sudo pip3 --trusted-host pypi.doubanio.com install pytorch-lightning -i http://pypi.doubanio.com/simple
注意后面要有/simple目录!!!
命令解释:
--trusted-host 指定可信源(忽略https的安全要求)
-i 指定镜像源路径
pipy国内镜像目前有:
http://pypi.douban.com/ 豆瓣
http://pypi.hustunique.com/ 华中理工大学
http://pypi.sdutlinux.org/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学
要配制成默认的话,需要创建或修改配置文件(linux的文件在~/.pip/pip.conf,windows在%HOMEPATH%\pip\pip.ini),修改内容为:
code:
[global]
index-url = http://pypi.douban.com/simple
这样在使用pip来安装时,会默认调用该镜像。
在运行PyTorch代码的时候,报了“ModuleNotFoundError: No module named '_bz2'”错误,完整报错提示信息如下:
Traceback (most recent call last):
File "stat_model.py", line 1, in <module>
from torchstat import stat
File "/usr/local/lib/python3.7/site-packages/torchstat/__init__.py", line 11, in <module>
from torchstat.reporter import report_format
File "/usr/local/lib/python3.7/site-packages/torchstat/reporter.py", line 1, in <module>
import pandas as pd
File "/usr/local/lib/python3.7/site-packages/pandas/__init__.py", line 55, in <module>
from pandas.core.api import (
File "/usr/local/lib/python3.7/site-packages/pandas/core/api.py", line 24, in <module>
from pandas.core.groupby import Grouper, NamedAgg
File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/__init__.py", line 1, in <module>
from pandas.core.groupby.generic import ( # noqa: F401
File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/generic.py", line 44, in <module>
from pandas.core.frame import DataFrame
File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 88, in <module>
from pandas.core.generic import NDFrame, _shared_docs
File "/usr/local/lib/python3.7/site-packages/pandas/core/generic.py", line 70, in <module>
from pandas.io.formats.format import DataFrameFormatter, format_percentiles
File "/usr/local/lib/python3.7/site-packages/pandas/io/formats/format.py", line 48, in <module>
from pandas.io.common import _expand_user, _stringify_path
File "/usr/local/lib/python3.7/site-packages/pandas/io/common.py", line 3, in <module>
import bz2
File "/usr/local/lib/python3.7/bz2.py", line 19, in <module>
from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'
找到python3.5路径下的bz库文件,即“_bz2.cpython-35m-x86_64-linux-gnu.so”。
ls /usr/lib/python3.5/lib-dynload/
cd /usr/local/lib/python3.6/lib-dynload
sudo cp /usr/lib/python3.5/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so ./
修改文件名称,将"-35m"修改为"-36m"即可:
sudo mv _bz2.cpython-35m-x86_64-linux-gnu.so _bz2.cpython-36m-x86_64-linux-gnu.so
最后再使用下面方式安装
sudo pip3 install pytorch-lightning
到这里我就安装成功了
测试方法
终端输入python3回车
import pytorch_lightning as pl
没有报错,安装成功!