atxserver2环境搭建

1. 卸载python3.11.4版本

$sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.11/

$sudo rm -rf /Applications/Python\ 3.11/

第三步:删除指向python的链接
cd /usr/local/bin/
ls -l /usr/local/bin | grep '/Library/Frameworks/Python.framework/Versions/3.11'                            

# 查看链接
brew prune                  
如报错:Error: Unknown command: prune
则换用:brew cleanup

2. 安装python3.9.16版本

Index of /ftp/python/3.9.16/

在执行该命令前,建议先清理下brew的缓存

brew cleanup

如遇Python环境报错

Run Configuration Error: Please specify a script name

参考:https://blog.csdn.net/weixin_43919570/article/details/103824197
Run Configuration Error: Please specify script name
关于pycharm右上角有红色XX的问题,在script path中加入一个脚本的绝对路径(即运行的py代码文件),就可以正常运行所有的.py脚本文件了

3. 安装miniconda

Miniconda — conda documentation

安装包 或者sh脚本 一路回车 shift G yes yes

 安装完成后重启终端,若前面增加(base)则环境自动配置完成,则可以正常使用

以下配置文件会自动写入vim ~/.zshrc

只需要source ~/.zshrc 不刷新不生效

conda/pip 下载第三方包时默认使用国外的源文件,因此在国内速度会比较慢,故通常使用国内第

三方镜像源进行下载

查看源

conda config --show channels

添加源 下面选择一个即可

conda config --add channels <parameters>

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

删除源

conda config --remove channels <parameters>
恢复源(恢复官方下载地址,清除所有自行添加的第三方源)

conda config --remove-key channels

记得重启终端!!!!安装完成终端显示如图

# To activate this environment, use
#
#     $ conda activate fm
#
# To deactivate an active environment, use
#
#     $ conda deactivate
 

4. 使用Miniconda创建虚拟环境

一、安装

二、创建虚拟环境
在安装完Miniconda后,我们可以在命令行中使用conda来创建新的虚拟环境。具体步骤如下:

1. 创建新的虚拟环境
conda create -n env_name lspython3.9
这个命令将会创建一个名为"env_name"的虚拟环境,并且使用Python 3.8版本。

2. 激活虚拟环境
conda activate env_name
运行这个命令将会激活"env_name"虚拟环境。在使用虚拟环境时,需要先使用此命令激活虚拟环境。

3. 安装所需的包和库
使用conda activate命令激活虚拟环境后,我们就可以在虚拟环境中安装所需的Python包和库。

例如,如果我们需要安装numpy包,可以使用以下命令:

conda install numpy
4. 退出虚拟环境
在退出虚拟环境之前,我们需要保存当前环境中所安装的Python包和库的信息。可以使用以下命令来实现。

conda env export > environment.yml
这个命令将会把当前虚拟环境中安装的所有Python包和库相关的信息保存到environment.yml文件中。这样,我们在未来需要使用当前虚拟环境时,只需要使用以下命令即可:

conda env create -f env_name.yml
三、管理虚拟环境
在使用Miniconda创建虚拟环境时,我们需要掌握一些基本的管理命令。

1. 查看已存在的虚拟环境
我们可以使用以下命令来查看已存在的虚拟环境。

conda info --envs
这个命令将会列出所有已创建的虚拟环境的信息。

2. 删除虚拟环境
如果某个虚拟环境不再需要,可以使用以下命令来删除它。

conda remove --name env_name --all
运行这个命令将会删除名为"env_name"的虚拟环境以及其中安装的所有Python包和库。

3. 更新已存在的虚拟环境
有时候,我们需要更新已存在的虚拟环境中的Python包和库。可以使用以下命令实现。

conda update --all
这个命令将会更新当前虚拟环境中已安装的所有Python包和库。

四、总结
在本文中,我们学习了如何使用Miniconda来创建Python虚拟环境。创建虚拟环境有助于我们在不同项目之间隔离Python包和库,防止冲突。通过掌握虚拟环境的基本管理命令,我们可以更加灵活地管理我们的Python开发环境。

实际操作:

查看当前虚拟环境列表,输入conda env list 或者 conda info -e命令

(base) conda env list
创建指定名称和python版本的虚拟环境,输入命令conda create -n Env python=x.x命令 创建的比较慢 耐心等待 

(base) conda create -n fm python=3.9

其中Env是需要指定的虚拟环境名称,这里以fm为例,x.x是需要指定的python版本,这里以3.9版本的python为例

输入相应的命令来进入虚拟环境

(base) conda activate fm

完成上述输入后,只要看见命令行前面(base)被替换为当前虚拟环境的名称即可

(fm) 

输入conda deactivate命令来关闭虚拟环境!

(fm) conda deactivate

5. conda环境变量自动写入.zshrc

打开终端,输入echo $PATH就会显示出我们电脑中所有的设置了的环境变量

不同的环境按照: 拆分的
然后输入echo 'export PATH="/Users/qa/miniconda3/bin:/Users/qa/miniconda3/condabin"' >> ~/.zshrc

这里"/User/qa"为用户的个人文件夹,每个人不同,请查看后替换即可

然后需要激活一下输入:source ~/.zshrc
最后输入conda --version
如果输出了版本信息,则设置环境变量成功

To initialize your shell, run

    $ conda init <SHELL_NAME>

conda init zsh

6.下载atx2代码

7. 安装启动rethinkdb 

$ brew install rethinkdb

Installing RethinkDB - RethinkDB

本地启动rethinkdb  :rethinkdb

8. 启动atx2服务器 客户端,记得搞清楚顺序!!!

1. 在虚拟环境启动rethinkdb

由于上面创建好了虚拟环境,进入conda虚拟环境

(base) qa@yueyutu:~$conda activate fm

rethinkdb

分别在服务端 客户端代码的虚拟环境执行 pip install -r requirements.txt 如果未执行会报错

2. 服务端atxserver2代码路径下启动

执行   python3 main.py --port 4000  

实际操作:

(fm) ➜  atxserver2 git:(main) ✗ pwd
/Users/qa/Desktop/devcloud/code/atxserver2

(fm) ➜  atxserver2 git:(main) ✗ pip install -r requirements.txt

(fm) ➜  atxserver2 git:(main) ✗ python3 main.py --port 4000 

3. 客户端provider代码路径下启动

python3 main.py --server localhost:4000

实际操作:

(fm) qa@yueyutu:~/Desktop/devcloud/code/provider$pwd
/Users/qa/Desktop/devcloud/code/provider

(fm) qa@yueyutu:~/Desktop/devcloud/code/provider$pip install -r requirements.txt

(fm) qa@yueyutu:~/Desktop/devcloud/code/provider$python3 main.py --server localhost:4000

  File "/Users/qa/Desktop/devcloud/code/atxserver2/main.py", line 8, in <module>
    import tornado.ioloop
ModuleNotFoundError: No module named 'tornado'  

解决办法:pip install tornado

原因:没有在虚拟环境执行 pip install -r requirements.txt 好傻。。。要严格按照步骤123执行

4. 在浏览器访问http://localhost:4000
 
 5. 在终端输入

(base) qa@yueyutu:~$adb track-devices
001823c9a7b9ec1e7ece    device

在客户端终端能看到log日志

------2023.8.17 到8.25------

9. macos安装adb scrcpy

brew install android-platform-tools

brew install scrcpy

重启终端,手机连接电脑,输入scrcpy  mac打开scrcpy可以操作手机端

10. adb连接

只有一台设备的时候:

adb devices

adb shell

cd sdcard

ls -al

多台设备的时候:adb -s 设备名称 shell

(atx) [root@localhost provider]$ adb devices
List of devices attached
HA1CAJ9F    device
ZY322G7DXX    device

(atx) [root@localhost provider]$ adb -s HA1CAJ9F shell

11. 解决asset/scrcpy-server-v2.1.1找不到的问题

12. 解决atx scrcpy-server.jar无法上传到安卓目录的问题

修改路径 原来的路径不可查看文件 猜测是权限问题,

"/data/local/tmp/scrcpy-server.jar" 改为
"/sdcard/Download/scrcpy-server.jar"

    async def deploy_server(self):
        # 1.推送jar包
        server_file_path = os.path.join(BASE_DIR, "asset/scrcpy-server-v2.1.1")
        # await self.adb_device.push_file(server_file_path, "/data/local/tmp/scrcpy-server.jar")
        await self.adb_device.push_file(server_file_path, "/sdcard/Download/scrcpy-server.jar")
        # 2.启动一个adb socket去部署scrcpy_server
        self.scrcpy_kwargs['scid'] = '0' + ''.join([hex(random.randint(0, 15))[-1] for _ in range(7)])
        commands = [
            "CLASSPATH=/data/local/tmp/scrcpy-server.jar",
            "app_process",
            "/",
            "com.genymobile.scrcpy.Server",
            "2.1",
            *[f"{k}={v}" for k, v in self.scrcpy_kwargs.items()]
        ]
        self.deploy_socket = await self.shell(commands)

13. 三星安卓10无法显示屏幕,安卓11 安卓7正常显示

解决办法:adb shell

cd /data/local/tmp   安卓日志路径

ls

对比pad和三星,发现三星无minicap minitouch

  对于这种情况,可以将正确的minicap和minicap.so推送到设备上即可解决。

        在操作之前,首先应当查询自己的设备的cpu架构和安卓sdk版本:

adb shell getprop ro.product.cpu.abi    结果是arm64-v8a
adb shell getprop ro.build.version.sdk   结果是29
在 GitHub - openatx/stf-binaries: Repo to place STF binaries下载上面的文件

14. adb 命令不起作用 识别不了设备

adb devices不生效

重启adb服务

adb kill-server

adb start-server

15. 代码解读

video_codec: "h264",

audio_codec: "aac",

H.264是一种视频压缩编码格式,也称为AVC(Advanced Video Coding)或MPEG-4 Part 10。它是高清视频编码的主流格式之一,被广泛应用于数字广播、高清电视、蓝光光盘和互联网视频流等领域。H.264采用先进的编码技术,能够提供更高的图像清晰度和更低的码率,从而在保证视频质量的同时节省存储和传输成本

aac:AAC,全称Advanced Audio Coding,是一种专为声音数据设计的文件压缩格式。与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的“性价比”。利用AAC格式,可使人感觉声音质量没有明显降低的前提下,更加小巧。

优点:相较于mp3,AAC格式的音质更佳,文件更小。

16. 解决无法点击屏幕

原因:remotecontrol_android.html为按比例自动缩放,play.html(Django)显示的屏幕大小不会随页面放大缩小。有个h265方式获取的宽高是720*448,电脑上显示的大小是545*339,这个对不上,可能是导致位置不准的原因。尝试按照这个比例缩放坐标也不行。电脑上显示的大小不是固定的,会随缩放变化

if (data[4] == 103) {

const { profileIndex, constraintSet, levelIndex, croppedWidth, croppedHeight, } = window.h264ParseConfiguration(data);

window.canvas_resolution = [croppedWidth, croppedHeight];

这个宽高,无论怎么缩放都是同一个值。是有后端返回,实时获取电脑显示的大小和鼠标点击位置的坐标,然后换算到window.canvas_resolution里面确定x,y的值

 

// x = Math.max(x, 0);

// y = event.clientY - ele.offsetTop + window.scrollY;

 event.clientY是鼠标相对于浏览器窗口可视区域的Y坐标。ele.offsetTop是canvas容器到顶部的距离

已知

手机视频流数据解析宽高   固定  window.canvas_resolution[0], window.canvas_resolution[1]

canvas宽高   动态   ele.offsetWidth, ele.offsetHeight

鼠标点击位置相对于canvas的x,y坐标  elex  eley

将canvas的x,y坐标换算成手机视频流数据对应坐标

 

templates.remotecontrol_android调用的接口在web.urls 查询,对应的接口调用web.views.device

100. 参考资料

使用Miniconda创建虚拟环境_笔记大全_设计学院

MacOs环境下部署python - 哔哩哔哩

【Python】conda实现虚拟环境的创建_conda创建python虚拟环境_zz.YE的博客-CSDN博客

Python虚拟环境查看指南_笔记大全_设计学院

使用ATX-server部署过程中遇到的问题-遇到就更,作为记录_atx server internal error: ioexception: read timed_我心飞扬不飘荡的博客-CSDN博客

部署ATXSERVER2后无法正确显示手机屏幕_七只七七的博客-CSDN博客

GitHub - openatx/stf-binaries: Repo to place STF binaries

Button group · Bootstrap v4 中文文档 v4.6 | Bootstrap 中文网

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ATXServer2是一个用于搭建自动化测试环境的系统。搭建这个系统需要安装一些组件和依赖项。首先,需要安装atxserver2和atxserver2-android-provider,可以通过在终端中使用git clone命令将它们的源码拉取下来,并按照相应的安装指南进行安装。\[1\]\[2\]另外,还需要安装Node.js和rethinkdb,可以通过它们的官方网站下载并按照指南进行安装。\[1\]安装完成后,可以使用pycharm创建一个虚拟环境,并在该环境中打开atxserver2的项目。然后,在终端中使用pip install命令安装项目所需的依赖包。\[3\]最后,可以通过运行python main.py命令启动atxserver服务,并在浏览器中访问http://localhost:4000/来进入管理页面。\[3\]这样,ATXServer2就搭建好了。 #### 引用[.reference_title] - *1* *3* [ATX Server2-多设备集群环境搭建](https://blog.csdn.net/weixin_42277380/article/details/131398863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Windows安装atxserver2搭建移动设备管理平台](https://blog.csdn.net/Theahe/article/details/126489389)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方狱兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值