• 树莓派3 虚拟机部署streamlit流程 2022


           

            想要实现的效果:树莓派开机运行虚拟机中的streamlit,使内网通过192.XX这种网址正常访问页面。

            2022年4月,树莓派官网发布了支持老硬件的64位系统,默认内置64位的python3.9,很方便。

            在树莓派的官网安装64位的操作系统:Operating system images – Raspberry Pi

            并设置root密码:

    sudo passwd root

            (我所用的pyarrow-6.0.1不支持32位python,这也是之前一直没成功的原因之一)

    首先切换至root账户:sudo su。

    设置树莓派可远程登入root:

    sudo nano /etc/ssh/sshd_config

    #找到 #PeimitRootLogin prohibit-password (树莓派4B) 或者#PermitRootLogin without-password,修改为

    PermitRootLogin yes #注意需要去掉注释#       

    树梅派raspberrypi的su密码root密码是什么_rainforest2003的博客-CSDN博客_树莓派root密码d入手了树梅派4B,上电后,安装portainer的时候想获得root权限,输入su,恩?密码是多少?不记得了,输了好几遍登录密码也不对,无法进入了。查了一下,原来树莓派的Raspbian系统root用户默认是禁用状态,且没有密码,所以要先设置个密码,然后开启才能正常使用。我还没开启root。https://blog.csdn.net/rainforest2003/article/details/124078598

    目录

    1.Root安装python3.8,必须得是64位的python,

    参考 https://www.jianshu.com/p/ba55a4ea7047

    2.升级pip和安装virtualenv

    3.设置虚拟环境 

    4.设置开机自动运行

    5.重启


    1.Root安装python3.8,必须得是64位的python

    参考 https://www.jianshu.com/p/ba55a4ea7047

     若是新版64位树莓派系统,则本步可忽略。

    进入python环境,查看python是多少位的:

    1. import platform
    2. platform.architecture()

            若是新版64位树莓派系统,则本步可忽略。

    设置软链接:sudo rm /usr/bin/python      

       sudo ln -s /usr/local/bin/python3  /usr/bin/python

    /usr/local/bin/python3这个是python3.8的那个安装文件,要注意

    更改pip软链接:sudo rm /usr/bin/pip  

    sudo ln -s /usr/local/bin/pip3  /usr/bin/pip

            若是新版64位树莓派系统,则第一步可忽略。

    2.升级pip和安装virtualenv

    1. 升级pip到22.2:
      sudo pip install --upgrade pip
    2. 安装virtualenv 和 virtualenvwrapper:
    1. sudo apt-get install virtualenv
    2. sudo apt-get install virtualenvwrapper

    或者使用 pip3 安装,pip3 安装的时候一定要用 sudo 权限,否则会出一些莫名其妙的情况。

    sudo pip3 install virtualenv virtualenvwrapper

    看看这个库有没有安装:find -name virtualenv

    /以下似乎不用写入

    写入环境变量:vi /etc/profile

    加入这行代码:PATH=$PATH:/usr/local/python3/bin

    以上似乎不用写入/

    文件修改之后要重启:sudo reboot

    查看是否有了命令:virtualenv -V (如果成功它会有错误提示:说需要参数 the following arguments are required: dest)

            这时就可以把本机项目的需要的文件,复制到这个venv文件夹中了。

    3.设置虚拟环境 

            普通用户下(这时就别在普通和root来回切换了):virtualenv -p /usr/bin/python3 venv

    1. cd到这个venv目录,激活虚拟环境:source ./bin/activate

    Pip list查看当前库,如果它提示要升级pip,那就升级:

    /home/pi/venv/bin/python -m pip install --upgrade pip

    查看虚拟环境中的python版本:python -V

    将项目生成的库列表,复制到这个文件夹(pip freeze > requirements.txt),

    在原项目中,导出离线包 

    pip download -d require -r requirements.txt

    <以下灰色字可能要用到,新的64位系统应该不用这样了>

    一会先安装离线的,将requirements.txt 放在require文件夹中,在服务器端cd到require文件夹,pip install --no-index --find-links=./ -r requirements.txt

    这里注意,先安装pandas:

    (如果卡在Installing build dependencies ... \,我就退出,然后重新链接,再换源安装。)

    有几个库要注意:sudo apt-get install python3-pandas

    或:sudo apt-get install python3-pandas==1.3.5

    或:sudo apt-get install pandas==1.3.5

    或:pip install pandas==1.3.5(我用这种方式安装上的)

    安装库:

    pip install -r requirements.txt

    或用其他源安装pip install -i https://mirrors.aliyun.com/pypi/simple -r requirements.txt(国内pip源如下:

    阿里云:https://mirrors.aliyun.com/pypi/simple

    豆瓣:https://pypi.douban.com/simple/

    清华大学:https://pypi.tuna.tsinghua.edu.cn/simple

    中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple

    命令写法为:pip install 安装包名 -i 其他pip源的url,如pip install pandas-datareader -i http://mirrors.aliyun.com/pypi/simple

    使用这些pip下载可以提高下载速度,大大加速。

    原文链接:https://blog.csdn.net/acegem/article/details/103153439)

            还是64位新系统好用啊!

    退出虚拟环境:在这个虚拟环境的文件夹下 deactivate

    4.设置开机自动运行

    我是在venv文件夹下新建一个sh文件,并编辑:

    sudo nano /home/pi/venv/go.sh

    写入内容:

    1. #!/bin/sh                        #
    2. cd /home/pi/venv/bin                #进入虚拟环境的bin文件夹
    3. source activate                        #运行虚拟环境
    4. cd ..                                                #退回上一层文件夹
    5. streamlit run Main.py                #运行相应的py文件

    将shell改为bash,这样配合下面的文件改动就能开机运行.sh文件:

    chsh -s /bin/bash

    然后编辑启动文件:

    sudo nano /etc/rc.local 

    在文件的 exit 0 之前,添加执行sh文件的脚本:

    sudo bash /home/pi/venv/go.sh    

            先测试这个sh文件能否正常运行:./go.sh

            最好记住运行的streamlitNetwork URL和External URL

    5.重启

            重启sudo reboot,就能在浏览器中输入地址、查看运行情况了。

    此时,登录,ps -ef可以查看当前的进程。

  • 相关阅读:
    jvm02
    java和vue的大学生奖学金助学金系统奖学金系统助学金系统
    一文详解|增长那些事儿
    观测云产品更新 | 数据转发、监控器告警策略等优化
    Python Opencv实践 - 车辆统计(1)读取视频,移除背景,做预处理
    MySQL8修改密码(linux环境)
    Linux概述
    Spring Cloud系列(二):Eureka Server应用
    SpringBoot 如何使用 JProfiler 进行性能测试
    穿越两大空间的调用栈
  • 原文地址:https://blog.csdn.net/limaning/article/details/126757158