记录碰到的bug以及解决方案(持续更新)
已经解决的BUG
latex相关
【0】
出现这种情况可能是因为overleaf左侧菜单这里的版本设置有问题,比如:
2022改成了2021就好了
【1】
没显示出错误在具体哪一行,但是估计是引用的问题
加入下面这句话之后好了
\bibliographystyle{apalike]
python相关
【0】
问题:用地图编辑器修改星际的地图,但是用pymarl加载的时候报错:
原因:linux和windows的星际争霸2版本不一样,导致使用windows星际争霸地图编辑器设计的地图不能直接在linux环境上用
解决方法:下载 http://www. zezula.net/en/mpq/downl oad.html 里面的mpqeditor,把 t3Terrain.xml中的115改成114
参考:这个issue https:// github.com/deepmind/pys c2/issues/326#issuecomment-873273166
【1】
明明安装了包但是import不到
解决方法:添加python path
export PYTHONPATH=/home/chenhao/anaconda3/lib/python3.6/site-packages:$PYTHONPATH
【2】
ImportError: /usr/lib/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _PyUnicode_AsWideCharString
我是在执行 https:// github.com/starry-sky66 88/StarCraft 中的
python main.py --map=3m --alg=qmix 语句的时候报错的
把python换成python3就可以消除这个错误:python3 main.py --map=3m --alg=qmix
【3】
(1)pip uninstall enum34
(2)万一用不了pip,可直接删掉\Lib\site-packages\enum打头的两个文件夹即可!
【4】
需要修改SC2PATH
export PATH=/home/chenhao/pymarl/3rdparty/StarCraftII/:$PATH
export PATH=/home/chenhao/StarCraftII/:$PATH
【5】
段错误:内存不足导致的
【6】
用管理员权限安装了pip3 之后就好办了
# Install python3 pip3
RUN apt-get update
RUN apt-get -y install python3
RUN apt-get -y install python3-pip
RUN pip3 install --upgrade pip
【7】
明明之前smac安了,但是识别不出来
解决方法:运行如下命令重装
RUN pip3 install git+ https:// github.com/oxwhirl/smac .git
【8】
https:// github.com/openai/multi agent-particle-envs/issues/53
pip3 uninstall gym
pip3 install gym==0.10.5
【9】
Aborted (core dumped)
一般是关于内存异常: 详细解释 gdb使用 1.往受到系统保护的内存地址写数据 有些内存是内核占用的或者是其他程序正在使用,为了保证系统正常工作,所以会受到系统的保护,而不能任意访问。可能是因为其他用户正在跑程序,等他们不跑了试一试。
【10】
nvidia-smi的时候没有进程出现
解决办法:服务器没有装gpu版本的torch,只有cpu版本的,所以自然识别不出来cuda
Pip安装1.0.0版本的torch就可以了
python
import torch
torch.cuda.is_available()
【11】
不用sudo的情况下更新pip
/home/chenhao/anaconda3/bin/python -m pip install --upgrade pip
【12】
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
ssh-keygen -R 服务器地址
【13】
pkg_resources.DistributionNotFound: The 'wheel; python_version < "3"' distribution was not found and is required by the application
tensorboard版本不对,重新安装最新版的就可以了
【14】
ModuleNotFoundError: No module named 'torch'
Pip安装的torch(usr/lib/下面)跟我实际使用的python(conda)是在两个位置,因此pip3安装成功,但是conda却找不到。直接conda install troch会报错
之后去官网 https:// pytorch.org/ 找到了官方下载命令
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
【15】
服务器提示某个包报错,装不上,环境不匹配等
解决办法:从另一个正常运行的服务器上面复制一份过来,拷贝到
/home/chenhao/anaconda3/lib/python3.6/site-packages/
/home/chenhao/anaconda3/lib/python3.7/ site-packages/
【16】
"/home/xxx/anaconda3/envs/LIIR/lib/python3.6/site-packages/smac/env/starcraft2/starcraft2.py", line 292, in _launch
self._run_config = run_configs.get(version=self.game_version)
TypeError: get() got an unexpected keyword argument 'version'
解决办法: https:// github.com/oxwhirl/pyma rl/issues/53
SMAC requires that you use pysc2>=3.0.0. Please update it!
【17】
ModuleNotFoundError:没有名为“ numpy.testing.nosetester”的模块
升级scipy到更高版本。
pip install numpy==1.18
pip install scipy==1.1.0
pip install scikit-learn==0.21.3
【18】
明明在mac上安装了torch包,但是vscode运行代码的时候还是会报错
原因:本地有多个python环境
切换一下环境就好了
【19】
tmux用不了
https:// github.com/tmux/tmux/is sues/1215
本质原因:由于没有sudo权限导致无法建立文件夹,解决方案就是在自己的目录里面建立文件夹之后用$SHELL来刷新
【20】
mac上面vscode报错PermissionError: [Errno 1] Operation not permitted
原因:系统更新之后需要重新授予vscode完全的磁盘访问权限,并重启vscode。
【21】
Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
解决办法:self.agent.cuda()
【22】
RuntimeError: Only Tensors created explicitly by the user (graph leaves) support the deepcopy protocol at the moment
原因:调用copy.deepcopy的时候出问题
解决办法:参考这个链接
【23】
IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2)
原因:少了一个维度,输入的是二维的,而人家需要的是三维的
注意区分使用矩阵乘法bmm和mm的时候有没有batch
【24】
No module named _internal.cli.main
别急着 下载get-pip.py ,先看看自己是不是输入的是pip install xx,之前安的pip3,换成pip3 install xx就好了
【25】
module 'torch' has no attribute 'square'
解决办法:手动改成两个相同元素做torch.mul
【26】
'float' object has no attribute 'item'
epymarl的q_learner的132行:grad_norm后面多加了.item()
明明原版的pymarl里面没加.item()的,epymarl里面加了,还报错
【27】
pycharm里面的file-setting-project-project structure-content root
新增content root等效于:
import sys
sys.path.append('/home/ChenHao/code/xx')
可以用于解决Windows环境和Linux环境关于添加运行路径的问题
【28】
pytorch ImportError: libprotobuf.so.9: cannot open shared object file: No such file or directory
动态链接库的问题
export LD_LIBRARY_PATH=/usr/local/lib
或者是在服务器自己的用户目录下新建文件夹,把对应的so文件放进去,如果名字不一样就用 ln -s 原始文件 新文件 来生成软链接,使得系统能读取到改目录下的so文件
【29】
报错:sessions should be nested with care, unset $TMUX to force
解决:unset TMUX
【30】
问题:解决每次打开终端都需要source .bashrc
解决方案:编辑默认目录下面的.bash_profile文件(在mobaxterm里面默认是隐藏文件),在文件结尾添加如下内容即可
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
【31】
AttributeError: module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipeline‘
降低openc-python的版本:
pip install opencv-python==4.1.2.30
【32】
问题:DeprecationWarning: Using or importing the ABCs from 'collections' instead of from '
collections.abc
' is deprecated, and in 3.8 it will stop working
解决方案:把相关位置代码改为 import collections.abc as _collections
【33】
在构建模型的时候,一定不能在计算过程中直接对Tensor进行赋值,否则会导致autograph机制失效,导致模型无法通过后向传播更新参数。
【34】
StarCraft2Env' object has no attribute '_sc2_proc_list'
这个问题不一定是由于星际环境导致的,其他(自己写的)代码的bug也可能导致。错误原因多样。
【35】
AttributeError: 'NoneType' object has no attribute 'items'
错误原因比较多,可能是算法的参数输入有问题,比如
CUDA_VISIBLE_DEVICES=0 python3 src/main.py --config=xx --env-config=sc2 with env_args.map_name=3m 这种语句的参数在复制的时候出错,多了空格或者格式不对
【36】
ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
原因:libpython3.6m.so.1.0这个文件不存在
解决方案:查看/usr/lib/x86_64-linux-gnu/目录下是否存在libpython3.m.so.1.0文件,没有的话从别的服务器拷贝一份
【37】
undefined symbol: cublasLtGetStatusString, version libcublasLt.so.11
并不一定是因为出错了,可能是因为压根没装pytorch
【38】GPU突然报错
gpustat报错:
Error on querying NVIDIA devices. Use --debug flag for details
nvidia-smi报错:
Failed to initialize NVML: Driver/library version mismatch
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
重启就可以:
sudo reboot
但是有一个服务器重启还是不行,尝试下面的方法之后修好了
【39】如何打开xx.parquet.gzip文件?
import pandas as pd
path = r"/home/xx.parquet.gzip"
a = pd.read_parquet(path)
【40】'Tensor' object has no attribute 'astype'
解决方法一:
import numpy as np
attn.astype(np.float32)
attn.numpy().astype(np.float32)
解决方法二:
import numpy as np