python3、django 嵌入式移植方法

主机:X86-64,嵌入式平台:zynq,gcc版本:4.9.2


$、解压Python-3.7.2.tgz,此为python的源码包,解压后出现"Python3.7.2"文件夹
$、进入python3.7.2文件夹,创建"zynq-install"文件夹。
$、执行下面的命令,产生Makefile文件
../configure CC=arm-xilinx-linux-gnueabi-gcc \
              CXX=arm-xilinx-linux-gnueabi-g++ \
              AR=arm-xilinx-linux-gnueabi-ar \
              RANLIB=arm-xilinx-linux-gnueabi-ranlib \
              --host=arm-xilinx-linux-gnueabi \
              --build=x86_64-linux-gnu \
              --target=arm-xilinx-linux-gnueabi \
              --disable-ipv6 \
              --prefix=/opt/python3 \
              --with-ensurepip=yes \
              --enable-optimizations \
              ac_cv_file__dev_ptmx=yes \
              ac_cv_file__dev_ptc=yes \
              --with-openssl=/home/jcy/HuiTu/openssl/openssl-1.0.2l/zynq-install \
              CFLAGS="-I/home/jcy/HuiTu/readline/readline-7.0/arm-install/include -I/home/jcy/HuiTu/python-3.7.2/bzip2-1.0.6/zynq_install/include" \
              LDFLAGS="-L/home/jcy/HuiTu/readline/readline-7.0/arm-install/lib -L/home/jcy/HuiTu/python-3.7.2/bzip2-1.0.6/zynq_install/lib"

备注:命令中指令了zynq平台上的zip、readline、openssl的库文件。python源码如果找不到库文件,就不会产生对应功能的python库模块,若在python脚本使用到了未产生的
        python库模块,就会提示找不到该模块。此时需要在命令中添加zynq平台的头文件路径和库路径。在代码编译的最后,会给出提示,提示”那些模块没有产生“。
      虽然编译出了对应的python库模块,若要python3能够使用,还需要将对应的动态库(如libz.so.1.2.11。。。。等)复制到zynq板的系统里。
      
      
$、修改源码根目录下的"setup.py"文件,找到"configure_ctypes"方法
将其中的"False",改成True      
      
$、    编译源码("#make -j8"),编译输出日志,最后数行内容如下:
running build
running build_ext
INFO: Can't locate Tcl/Tk libs and/or headers
INFO: Could not locate ffi libs and/or headers

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_curses               _curses_panel         _dbm               
_gdbm                 _lzma                 _tkinter           
_uuid                                                          
To find the necessary bits, look in setup.py in detect_modules() for the module's name.


The following modules found by detect_modules() in setup.py, have been
built by the Makefile instead, as configured by the Setup files:
_abc                  atexit                pwd                
time                                                           

running build_scripts
copying and adjusting /home/jcy/HuiTu/python-3.7.2/Python-3.7.2/Tools/scripts/pydoc3 -> build/scripts-3.7
copying and adjusting /home/jcy/HuiTu/python-3.7.2/Python-3.7.2/Tools/scripts/idle3 -> build/scripts-3.7
copying and adjusting /home/jcy/HuiTu/python-3.7.2/Python-3.7.2/Tools/scripts/2to3 -> build/scripts-3.7
copying and adjusting /home/jcy/HuiTu/python-3.7.2/Python-3.7.2/Tools/scripts/pyvenv -> build/scripts-3.7
changing mode of build/scripts-3.7/pydoc3 from 644 to 755
changing mode of build/scripts-3.7/idle3 from 644 to 755
changing mode of build/scripts-3.7/2to3 from 644 to 755
changing mode of build/scripts-3.7/pyvenv from 644 to 755
renaming build/scripts-3.7/pydoc3 to build/scripts-3.7/pydoc3.7
renaming build/scripts-3.7/idle3 to build/scripts-3.7/idle3.7
renaming build/scripts-3.7/2to3 to build/scripts-3.7/2to3-3.7
renaming build/scripts-3.7/pyvenv to build/scripts-3.7/pyvenv-3.7
make[1]: Leaving directory '/home/jcy/HuiTu/python-3.7.2/Python-3.7.2/zynq-install'
$、"#make  install" ,安装python3
    在X86平台产生/opt/python3目录。该目录下的文件即为python3的安装文件

$、zynq平台移植
   1、将python3的安装包,复制到zynq平台的/python3目录下,目录内容如下:
   bin       include               lib                   share
   2、设置PATH和PYTHONHOME,在PATH环境中加入"/python3/bin"目录,使用PYTHONHOME的值为"/python3"

$、在X86平台使用源码安装Python3.7.2(使用默认配置),并使用源码安装"django",安装命令使用"python3.7.2 setup.py  install"。
    将会把源码安装在"/usr/local/lib/python3.7/site-packages"目录,在该目录中出现了Django-3.0-py3.7.egg目录。
    在"Django-3.0-py3.7.egg"目录下有一个名为"django"的目录,稍后会使用该"django"目录
$、根据网上的教程在X86平台创建一个django项目,项目的名称为"Test",将项目"Setting.py"中的ALLOWED_HOSTS的值改成"[‘*’]" 
   在zynq平台创建"/python3-web"文件夹,并将"Test"项目的文件夹复制到"python3-web"目录下
$、并将"django"目录复制到"python-web"目录下,进入"/python3-web/Test"目录执行"#python3 manage.py runserver 172.16.103.153:8000"
   会给出提示错误,找不到某某模块(本人环境会出现找不到pytz和sqlparse模块)。
$、安装python3模块的方法(此为原始、临时解决方法,而后可能会通过环境变量,或者直接复制源码中的某个文件夹,或者将包放在zynq板子的目录下"site-packages"目录,需要研究python的搜包规则)
   当前以安装"pytz"为例,说明:
1、下载pytz源码安装包,首先在X86平台安装pytz。执行命令"python3.7.2  setup.py  install"。安装后出现文件"/usr/local/lib/python3.7/site-packages/pytz-2018.4-py3.7.egg"
2、使用命令"unzip pytz-2018.4-py3.7.egg",得到"pytz"目录。
3、将"pytz"目录复制到zynq板的"/python3-web/Test"目录下
$、执行"#python3 manage.py runserver 172.16.103.153:8000"中所有的报错模块按照安装"pytz"的方法,解决之后,就可以出现运行服务器了。

$、使用浏览器,在浏览器的地址输入栏输入"172.16.103.153:8000",即可登陆服务器,显示一个django通用的静态网页

              
              
              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值