qemu仿真树莓派 树莓派 虚拟机_树莓派

        想要实现的效果:树莓派开机运行虚拟机中的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 #注意需要去掉注释#       

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

目录

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是多少位的:

import platform

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
  1. 安装virtualenv 和 virtualenvwrapper:
sudo apt-get install virtualenv

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下载可以提高下载速度,大大加速。

原文链接:)

        还是64位新系统好用啊!

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

4.设置开机自动运行

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

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

写入内容:

#!/bin/sh                        #

cd /home/pi/venv/bin                #进入虚拟环境的bin文件夹

source activate                        #运行虚拟环境

cd ..                                                #退回上一层文件夹

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

Network URL和External URL

5.重启

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

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