820板子安装python
1. 需要安装python, 从 python.org上下载版本,我下的是python3.5,网上搜索到的是python2.7的交叉编译过程
和820的结合下。
需要注意,先把820的环境设置好,就是$CC是交叉编译的那个CC,另外加入到$PATH里了。
python依赖openssl,下载交叉编译好,指定 /opt/agl/openssl为 --prefix 安装目录。
编译python之前,先用 make python Parser/pgen 编译出来pgen.
./configure --prefix=/opt/agl/python3.5 --host=aarch64-agl-linux --build=x86_64-linux-gnu ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no
需要把前面编译出来的pgen拷贝到 /opt/agl/python3.5下。
编译前,更改Makefile,把openssl的链接目录 -L... 加入到 CONFIG_LDFLAGS里
编译时提示编译错误,类似乎某个头文件... 但ubuntu下时不报这样的错误。
因为有的头文件时从别的地方生成的,头文件第一行时注释: /* .... */
交叉编译工具不能识别这样的。 大概有三个文件时这样的,挨个删掉第一行注释。
2. 编译完需要拷贝到板子上,安装一些python工具
安装pip,用 get-pip.py,发现不行。下载pip-19...源码,安装时报错。
用pip安装软件很困难,老是报错误:certificate verify failed 一类的。
搜索很多地方,好不容易才找到解决方案,需要:
pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org <package>
原因是:是Python 的轮子网站不信任我们的证书。
另一个地方提示: 这个错误的原因是某网站不再支持TLS1.0和TLS1.1版本,pip之前的版本是使用TLS1.0或TLS1.1所以解决方案是重新安装pip。
但我这个pip是下载最新的pip源码安装的。
可以增加一个pip.conf,参考https://www.jianshu.com/p/ac4df573b9d9。我在ubuntu下的/etc下增加这个文件,
[global]
index-url = http://pypi.douban.com/simple #豆瓣源,可以换成其他的源
extra-index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host =
pypi.douban.com #添加豆瓣源为可信主机,要不然可能报错
pypi.tuna.tsinghua #清华
timeout = 120
发现板子上原来有python,2.7.12版本。
ln -s /usr/lib64/python2.7 /usr/lib/python2.7
ubuntu下不存在这个问题。
但发现这个python版本很多内嵌的模块没有,于是决定自己编译一个版本。
搜索网上资料,似乎是2.7.13版本及其以下,做交叉编译需要打补丁(参见http://www.cnblogs.com/pengdonglin137/p/6588253.html)。安装2.7.16,我参考了别的网页,没有打补丁,后来类似的方法编译安装2.7.13,没打补丁,似乎也成功了。
2.7.16(ftp.python.org下载),
mkdir localbuild armbuild
cd localbuild
../configure --prefix=`pwd` && make -j4 && sudo make install
cd ../armbuild
../configure --prefix=/opt/agl/python2.7.13 --host=aarch64-agl-linux --build=x86_64-linux-gnu ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no
网上说python以来openssl,交叉编译,在python的Makefile中加上 -Lopenssl-1.0.2r/build/lib,
另外,编译之前需要注释掉setup.py中的两行:(参见 https://www.cnblogs.com/pengdonglin137/p/6596977.html)
15 if ext.name in sys.builtin_module_names:
16 self.extensions.remove(ext)
make HOSTPYTHON=../localbuild/Python HOSTPGEN=../localbuild/Parser/pgen
make -i install HOSTPYTHON=../localbuild/Python HOSTPGEN=../localbuild/Parser/pgen
如果直接install,容易出现这样的错误
ImportError: /home/tangjian/source/Python-2.7.16/build/lib.linux2-aarch64-2.7/_struct.so: cannot open shared object file: No such file or directory
这个问题是由于安装时使用了python,但Makefile中指定了错误的库,使用了arm平台上的so,显然这是不能在我们的x86linux上运行的。
ImportError:/work/winshare/build.arm/build/lib.linux2-arm-2.7/_struct.so: cannot openshared object file: No such file or directory
make: *** [libinstall] Error 1
这个问题是由于安装时使用了python,但Makefile中指定了错误的库,使用了arm平台上的so,显然这是不能在我们的x86linux上运行的。
修改build.arm下的Makefile
在Makefile中查找PYTHONPATH,将build.pc目录下的库文件路径添加到PYTHONPATH中,如:
PYTHON_FOR_BUILD=_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM)PYTHONPATH=../localbuild/build/lib.linux-x86_64-2.7:$(shelltest -f pybuilddir.txt && echo $(abs_builddir)/`catpybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) python2.7
注意,所有的PYTHONPATH中都需要修改。
按照前面说的或者参见https://m.2cto.com/kf/201511/448789.html,可以解决这个问题。
发送邮件(使用sendmail)
参考https://tecadmin.net/install-sendmail-on-ubuntu/,最后测试发送邮件,发到公司的很快就收到了,但是发送到yeah.net的,收到邮件花了至少3分钟。
python代码,sender = 'tangjian@tangjian.dell' 改为 sender = 'tangjian@tangjian-dell',结果发送就失败
/etc/hosts, 127.0.0.1 tangjian.dell tjnote
已经运行过了命令: hostname tangjian.dell
820板子安装python的更多相关文章
- 离线安装 Python 2.7, paramiko 和 tornado
无非就是离线安装, 步骤比较繁琐, 记录一下. 需求很简单, 一个离线安装的 Python, 能跑 tornado 和 paramiko 1. 离线安装 Python 2.7 .tgz cd Pyth ...
- 安装Python环境时遇到的问题
问题描述:An error occurred during the installation of assembly 'Microsoft.VC90.MFC,version="9.0.210 ...
- windows下面安装Python和pip终极教程
在大二的时候接触过一段时间的Python,最近又开始玩起了这门语言.总的来说,个 人很喜欢Python的语言风格,但是这门语言对于windows并不算很友好,因为如果是初学者在windows环境下安装 ...
- 安装Python算法库
安装Python算法库 主要包括用NumPy和SciPy来处理数据,用Matplotlib来实现数据可视化.为了适应处理大规模数据的需求,python在此基础上开发了Scikit-Learn机器学习算 ...
- OSX下 pip更新及安装python库
直接执行安装命令 $ pip install builtwith 提示pip当前版本为7.1.2,要使用"pip install --upgrade pip"升级到8.1.2 $ ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- 【初学者教程】在电脑上安装Python,写第一个程序
欢迎来到Python的世界 1.存在Python 2和Python 3两个版本,我该用哪个?如果书是关于2的,下载2:如果书是关于3的,就下载3.建议用Python 3,不过用2也是可以的. 2.下载 ...
- 转: windows下面安装Python和pip终极教程
原文: http://www.cnblogs.com/yuanzm/p/4089856.html 因为如果是初学者在windows环境下安装,简直是折磨人,会遇到各种蛋疼的情况.本文希望提供傻瓜式的教 ...
随机推荐
- 金蝶k/3 现金流量表编制口诀
现金流量表编制口诀 现金流量表是会计考试中十分令人头疼的内容,丢三落四是现金流量表编制中最容易出现的错误.下面的口诀基本上概括了现金流量表的全部编制过程.口诀的具体内容如何理解,我们在口诀后边详细阐述 ...
- Ubuntu+IntelliJ IDEA+Android 配置NDK环境+openCV
最近需要将Python人证对比模型移植安卓端.安卓端需要使用openCV简单的人像提取处理.在配置openCV前首先需要配置NDK环境. NDK的介绍(http://www.cnblogs.com/l ...
- 洛谷P4482 [BJWC2018]Border 的四种求法 字符串,SAM,线段树合并,线段树,树链剖分,DSU on Tree
原文链接https://www.cnblogs.com/zhouzhendong/p/LuoguP4482.html 题意 给定一个字符串 S,有 q 次询问,每次给定两个数 L,R ,求 S[L.. ...
- chromedriver与chrome版本映射表
问题: 利用selenium调用谷歌浏览器时报错,后发现是由于浏览器与浏览器驱动不匹配造成的 C:\Users\\Desktop\selenium>python chrome.py[9956:6 ...
- IntelliJ IDEA 中 Web项目 目录结构
--src 应用程序源代码和测试程序代码的根目录 --main --java 应用程序源代码目录 --resources 应用程序用到的资源文件(一般都是配置文件) --webapp web项 ...
- PTA L2-001 紧急救援 (带权最短路)
<题目链接> 题目大意: 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道 ...
- ViewPager+Fragment实现滑动切换页面
1.实现思路 主界面四个导航按钮使用RadioButton,通过Selector 设置它的drawableTop属性来设置所显示的图片.通过 FragmentPagerAdapter 实现切换. 2. ...
- BZOJ.4598.[SDOI2016]模式字符串(点分治 Hash)
LOJ BZOJ 洛谷 点分治.考虑如何计算过\(rt\)的答案. 记\(pre[i]\)表示(之前的)子树内循环匹配了\(S\)的前缀\(i\)的路径有多少,\(suf[i]\)表示(之前的)子树内 ...
- JSON WEB Token(JWT)
最近面试被问及单点登陆怎么解决?自己的项目前后端分离,自己实现token认证,token有失效时间,token中包含用户基本的信息.且一个当用户重新登陆后,原来的token就会失效,这么安全的一个to ...
- 十三、事务、连接池 、ThreadLocal 、BaseServlet自定义Servlet父类 、 DBUtils à commons-dbutils
l 事务 l 连接池 l ThreadLocal l BaseServlet自定义Servlet父类(只要求会用,不要求会写) l DBUtils à commons-dbutils 事务 l 事务的 ...