windows下编译MicroRTS-Py

1.microRTS(java)

microRTS是java写的跨平台的小型即时战略模拟器。

Farama-Foundation/MicroRTS: A simple and highly efficient RTS-game-inspired environment for reinforcement learning (github.com)icon-default.png?t=O83Ahttps://github.com/Farama-Foundation/MicroRTS

部署和使用很简单

1)配置java环境

java环境变量的配置_java环境变量配置-CSDN博客

microRTS要求java8,也就是java1.8及以上版本。

2)命令行编译

先在根目录上新建一个bin文件夹

然后执行命令行编译:

javac -cp "lib/*;src" -d bin src/rts/MicroRTS.java

(我就列出windows的方法,linux的命令可以在官网上找到)

带中文翻译的项目:

GitCode -MicroRTSGitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/gh_mirrors/mi/MicroRTS

碎碎念……至于那个说明中的jar文件——那里面的jar文件,合并之类的,我不会java结果还以为打包是必要过程……最后也没成功,原来打jar包和执行java是并行的,都可以达到目的

3)命令行执行

java -cp "lib/*;bin" rts.MicroRTS

这样就能看到两个ai在跑对战,直到结束。

或者,一般跑图形界面带编辑器的是用这个命令:

java -cp "lib/*;bin" gui.frontend.FrontEnd

2.MicroRTS-Py(python)

MicroRTS-Py是基于microRTS编写的python接口的项目,但是项目介绍上没找到说windows上是否可以编译,主要是依赖的Poetry(java转python)上没写是否在windows上能搞。

MicroRTS-Pyicon-default.png?t=O83Ahttps://github.com/Farama-Foundation/MicroRTS-Py

配置包的坑是真多,尤其是版本不匹配,我留下一条可行的版本路给大家。

Prerequisites:

  • Python 3.8+  (建议3.9,因为poetry要求3.7.1<= <3.10,正好剩下3.8和3.9)
  • Poetry
  • git(给poetry创建版本库用)
  • Java 8.0+   (运行microRTS用)
  • FFmpeg (for video recording utilities)

这个项目属于python利用poetry虚拟环境对java的 MicroRTS 原项目套壳。

1)安装Poetry

Poetry 是 Python 中的依赖项管理和打包工具。它允许您声明项目所依赖的库,并将为您管理(安装/更新)它们。Poetry 提供了一个锁定文件来确保可重复安装,并且可以构建您的项目以进行分发。

 

简介 |文档 |Poetry icon-default.png?t=O83Ahttps://python-poetry.org/docs/官方文档有推荐用 pipx 来安装poetry,但是我发现 pipx 的安装还需要 Scoop ……我还是自己装吧。

由于我装好了python,于是我使用如下命令行

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -

 装完了记得配置环境变量(跟那个java一样,按照这句标亮的提示来做)

 

2)使用poetry

MicroRTS-Py介绍是这么说的

$ git clone --recursive https://github.com/Farama-Foundation/MicroRTS-Py.git && \
cd MicroRTS-Py
poetry install
# The `poetry install` command above creates a virtual environment for us, in which all the dependencies are installed.
# We can use `poetry shell` to create a new shell in which this environment is activated. Once we are done working with
# MicroRTS, we can leave it again using `exit`.
poetry shell
# By default, the torch wheel is built with CUDA 10.2. If you are using newer NVIDIA GPUs (e.g., 3060 TI), you may need to specifically install CUDA 11.3 wheels by overriding the torch dependency with pip:
# poetry run pip install "torch==1.12.1" --upgrade --extra-index-url https://download.pytorch.org/whl/cu113
python hello_world.py

以下不特殊说明,都是在 MicroRTS-Py 目录下执行(解压后的根目录)

0-将microRTS(java编译好的原版)放到指定位置

将标题1中编译好的microRTS放到这个位置(原版microRTS-py的这里的文件夹里是空的)

pyproject.toml的一部分可以看出端倪

exclude = ["gym_microrts/microrts/build/*","gym_microrts/microrts/resources","gym_microrts/microrts/src","gym_microrts/microrts/data","gym_microrts/microrts/lib/*.jar",
]

1-执行 poetry install

坑: Unable to detect version control system

这个问 Copilot 解决了,需要在当前文件夹路径有git版本库

git init

然后就可以成功执行这句话了 

 poetry install 实际上是读取根目录下的pyproject.toml文件来装配虚拟环境的

​​​​​​​2-执行 poetry shell

坑: ModuleNotFoundError: No module named 'tomli'

简单,pip安装之 pip install tomli

​​​​​​​我依次安装了tomli、webencodings、 pexpect。最后终于运行成功

后来除了又缺包pip安装上了后……

 python hello_world.py
removing E:\1projects\_GitHub\RL\RTS\MicroRTS-Py\gym_microrts\microrts/microrts.jar...
building E:\1projects\_GitHub\RL\RTS\MicroRTS-Py\gym_microrts\microrts/microrts.jar...
E:\1projects\_GitHub\RL\RTS\MicroRTS-Py
此应用程序需要适用于 Linux 的 Windows 子系统可选组件。
通过运行安装它: wsl.exe --install --no-distribution
可能需要重新启动系统才能使更改生效。
Error code: Bash/WSL_E_WSL_OPTIONAL_COMPONENT_REQUIRED
Traceback (most recent call last):

这玩意又要WSL???我为了虚拟机删除了WSL(这东西曾经把我系统区搞废了一次!吓死我了!)这东西竟然又要!

未完持续…… 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/428440.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubeadm快速安装 Kubernetes集群

1. Kubernetes简介 Kubernetes&#xff08;k8s&#xff09;是谷歌开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序。它具有以下特点&#xff1a; 开源容器化自动部署扩展高可用 2. Kubernetes架构 Kubernetes遵循主从式架构设计&#xff0c;主要分…

Python用TOPSIS熵权法重构粮食系统及期刊指标权重多属性决策MCDM研究|附数据代码...

原文链接&#xff1a;https://tecdat.cn/?p37724 在当今世界&#xff0c;粮食系统的稳定性至关重要。尽管现有的全球粮食系统在生产和分配方面表现出较高的效率&#xff0c;但仍存在大量人口遭受饥饿以及诸多粮食安全隐患。与此同时&#xff0c;在学术领域&#xff0c;准确评估…

OpenAI GPT o1技术报告阅读(3)-英文阅读及理解

✨继续阅读报告&#xff1a;使用大模型来学习推理(Reason) 原文链接&#xff1a;https://openai.com/index/learning-to-reason-with-llms/ 这次我们继续看一个英文阅读理解的案例。 原问题&#xff1a; The following passage is the draft of an excerpt from a contempora…

基于OpenCV的YOLOv5图片检测

利用OpenCV的DNN模块加载onnx模型文件进行图片检测。 1、使用的yolov5工程代码&#xff0c;调用export.py导出onnx模型。 2、下载opencv版本&#xff0c;https://opencv.org/releases/ 使用opencv版本4.5.3或以上&#xff0c;本文使用的opencv4.6.0 3、使用vc20…

css设置overflow:hiden行内元素会发生偏移的现象

父级元素包含几个行内元素 <div id"box"><p><span>按钮</span><span>测试文字文字文字测试文字文字文字</span><span>看这里</span></p></div>#box p{width: 800px;font-size: 30px;}#box p span{disp…

VMware启动时报错: “另一个程序已锁定文件的一部分,进程无法访问” 分析记录

项目场景&#xff1a; VMware启动时报错: “另一个程序已锁定文件的一部分,进程无法访问” 问题描述 VMware启动时报错: “另一个程序已锁定文件的一部分,进程无法访问” 原因分析&#xff1a; 虚拟机开启后会对部分文件继续加密&#xff0c;关闭时虚拟机会自动对其解密&…

css设置动态数组渲染及中间线平均分开显示

效果图&#xff1a; <template><div class"container"><div v-for"(item, index) in items" :key"index" class"item-container"><span class"item">{{ item }}</span><span v-if"in…

二级C语言2023-9易错题

1 二叉树结点数计算&#xff1a; 一棵二叉树有10个度为1的结点&#xff0c;7个度为2的结点&#xff0c;则该二叉树共有____个结点。 解&#xff1a; 2 指针&#xff1a; 有以下程序 #inctude<stdio.h> #include<stdlib.h> main() { int *a&#xff0c;*b&…

Unity数据持久化4——2进制

概述 基础知识 各类型数据转字节数据 文件操作相关 文件相关 文件流相关 文件夹相关 练习题 using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using UnityEngine;public class Exercises1 : MonoBehaviour {/…

6. Python 输出长方形,直角三角形,等腰三角形

使用Python输出长方形&#xff0c;直角三角形&#xff0c;等腰三角形 这里主要使用python语言里的循环知识&#xff0c;具体说是Python语言里的循环嵌套&#xff0c; 注意&#xff0c;在实际使用中&#xff0c;循环嵌套一般最多到达3层&#xff0c;嵌套太多会影响到程序执行。…

详解ChatBI Agent架构:打造高效数据统计系统

随着人工智能技术的迅猛发展&#xff0c;智能对话系统在各行各业中的应用越来越广泛。本文将介绍一种名为ChatBI Agent的架构设计&#xff0c;并以电信运营商系统的经分数据统计Agent为案例&#xff0c;结合具体的代码实现&#xff0c;帮助读者了解这一系统的设计理念和实现方式…

新产品,推出 MLX90372GVS 第三代 Triaxis® 位置传感器 IC,适用于汽车和工业系统(MLX90372GVS-ACE-308)

Triaxis 旋转和线性位置传感器IC&#xff1a; MLX90372GVS-ACE-103 MLX90372GVS-ACE-108 MLX90372GVS-ACE-301 MLX90372GVS-ACE-200 MLX90372GVS-ACE-208 MLX90372GVS-ACE-303 MLX90372GVS-ACE-300 MLX90372GVS-ACE-350 MLX90372GVS-ACE-100 MLX90372GVS-ACE-101 MLX90372GVS-…

6.C_数据结构_查询_哈希表

概述 哈希表的查询是通过计算的方式获取数据的地址&#xff0c;而不是依次比较。在哈希表中&#xff0c;有一个键值key&#xff0c;通过一些函数转换为哈希表的索引值。 其中&#xff1a;这个函数被称为哈希函数、散列函数、杂凑函数&#xff0c;记为&#xff1a;H(key) 哈希…

使用 nvm 管理 node 版本:如何在 macOS 和 Windows 上安装使用nvm

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、nvm的安装与基本使用2.1 macOS安装nvm2.1.1 使用 curl 安装2.1.2 使用 Homebrew 安装 2.2 Windows安装nvm2.2.1 下载 nvm-windows2.2.2 安装 nvm-windows 2.3 安装node2.4 切换node版本 三、常见问题及解决方案…

STM32读写内部flash

一.简介 在 STM32 芯片内部有一个 FLASH 存储器&#xff0c;它主要用于存储代码&#xff0c;我们在电脑上编写好应用程序后&#xff0c;使用下载器把编译后的代码文件烧录到该内部 FLASH 中&#xff0c;由于 FLASH 存储器的内容在掉电后不会丢失&#xff0c;芯片重新上电复位后…

【redis-01】redis基本数据类型和使用场景

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325 redis基本数据类型和使用场景 一&#xff0c;redis基本数据类型和使用场景1&#xff0c;String数据类型2&#xff0c;Hash数据类型3&#xff…

Linux top命令详解与重点内容说明

文章目录 重点说明基本信息进程(任务)信息cpu占用信息%Cpu(s)内存信息交换内存信息每列含义说明交互命令多窗口模式颜色配置命令参数 重点说明 top命令非常强大&#xff0c;也非常复杂&#xff0c;很难面面俱到&#xff0c;也没有必要&#xff0c;这篇文章的目的是介绍重点&am…

2024华为杯研究生数学建模竞赛(研赛)选题建议+初步分析

提示&#xff1a;C君认为的难度&#xff1a;DE<C<F&#xff0c;开放度&#xff1a;CDE>F。 华为专项的题目&#xff08;A、B题&#xff09;暂不进行选题分析&#xff0c;不太建议大多数同学选择&#xff0c;对自己专业技能有很大自信的可以选择华为专项的题目。后续会…

英集芯IP5912:集成开关充电功能的低功耗8位POWER MCU芯片

英集芯IP5912是一款功能丰富的、集成了降压充电管理功能的8位MCU芯片&#xff0c;它内置了一个5V输入的同步降压充电DC-DC&#xff0c;功率管也是内置的&#xff0c;同时提供最大1.5A的充电电流。封装方式采用SOP16&#xff0c;方案应用时只需要很少的外围器件&#xff0c;就可…

【多线程】CAS的原理及应用,看这篇文章就够啦

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;多线程 / javaEE初阶 一、CAS概述 CAS&#xff08;Compare and Swap&#xff09;&#xff0c;中文译为 “比较并交换” &#xff0c;是一种无锁算法中常用的原子操作。CAS通常用于实现线程之间的同…