这是缺乏头文件路径:
cmake结束后,在make时可能会报这类致命错误:fatal error: NvInfer.h: No such file or directory
,像这个错误,我们比较清晰知道是自己在项目中使用了TensortRT,却没有指定这个路径,那就就需要在CmakeList.txt中添加这个路径,可能就是:
include_directories(/opt/TensorRT-7.2.3.4/include)
# 一般头文件都是在include
中
当看到类似这样的错误后:not defined environment variable:TENSORRT_ROOT_DIR
,也是缺乏环境变量,直接在控制台添加临时变量即可:
export TENSORRT_ROOT_DIR=/opt/TensorRT-7.2.3.4/
Ps:注意等号两边不能有空格,且一般前面带ROOT
时,都是最上面那级,是不带lib或是include的。
curl包的下载地址:这里。
使用curl常见错误:curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
可能导致的原因:
版本过旧,需要更新一下,下去下载好想要的版本,然后:
- tar -xzvf curl-7.55.1.tar.gz
- cd curl-7.55.1
- ./configure # 版本太高了的话,可能在执行此步骤时会报错
- make
- make install
- curl –version # 完成的检查
anaconda的影响
验证是否是anaconda的影响,先输入命令:which cur
(代表当前使用的curl),若得到的是类似这样的路径:your_install_path/anaconda3/bin/curl,说明是anaconda的问题,可以再执行whereis curl
,发现我们想用的是/usr/bin/curl,也可能是/usr/local/bin/curl,解决办法:
暂时把anaconda的环境your_install_path/anaconda3/bin注释掉,但是更好的还是降低anaconda环境变量的优先级,在~/.bashrc
中将
export PATH=your_install_path/anaconda3/bin:$PATH
改成
export PATH=$PATH:your_install_path/anaconda3/bin
Ps:其它若有类似的情况,也可以尝试把anaconda的环境变量优先级调低,让系统的环境变量优先。
win10动态链接库下载地址:这里。
在一次使用vs2017+opencv时,报错提示VCRUNTIME140_1D.DLL
找不到(这个经常找不到,我备份到onedrive的其它/windows相关(里面还有一个”微软常用运行库.exe”,解决不了的问题可试试看) 里了),这种大抵跟软件无关(应该也不是opencv的问题),是缺少了动态链接库(.dll文件),解决办法:在上面的下载地址找到自己缺少的.dll文件,文件下载后,解压,将其复制到C:\Windows\System32即可。
Ps:
情况描述:(不是很建议这么做了,会扰乱环境变量,还是用anaconda自带的终端)
win10中,在powershell下使用conda activate 虚拟环境名称
可能没有反应,在pycharm中的Treminal中也无法使用,然而使用cmd是可以的,那解决办法:
(建议安装时添加进环境变量,然后在执行下面的命令)以管理员身份打开powershell,然后运行conda init powershell
;命令执行完后,报错就解决,然后再去把相关的环境变量就关了,以后使用,powershell就会是默认的base环境,而cmd中就是没有的,(或者还是说都不添加环境变量,要用就用它自己提供的终端)(或许还是不要加进环境的好,后续可能很影响其它的东西)
然后重新打开一个powershell,如有红字报错提示,一般是因为poweshell中设置了策略,禁止脚本运行,然后参考这个官网,修改一下策略即可(我把策略改成了Unrestricted
)。
就是管理员身份打开powershell,然后执行的Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Ps:对于新版本的anaconda,应该都能解决,如果anaconda版本过低,建议升级,不升级就参考这里。
现象:若是意外把某个项目路径添加到python包的默认搜索路径,且搜索路径中一个包名与你正在写的项目中某个包同名,你在项目中导自己写的包时,因为会==优先搜索默认路径,并且在搜索到以后就不再搜索==,你就无法正确导入你想导入的包。
默认搜索路径的查看方法:
from pprint import pprint
import sys
pprint(sys.path)
解决办法:如果结果中有自己不想要的,删除的方法:在python导入目录(比如:your_path/anaconda3/envs/main/lib
)下搜索.pth
,一般包含setuptools.pth
, easy-install.pth
等,逐个打开找到并删除目标路径。
所以如果是要在路径中添加自己想要搜索的路径(一般都是代码中的临时添加):
import sys
sys.path.append("/home/songhui/123")
sys.path.insert(0, "/home/songhui/123") # 这就确保可以先搜索这个路径
就是代码能运行,但是具体函数点不进去,然后先弄一个虚拟环境,导包cv2,点进去,复制虚拟环境的__init__.py
里的内容,然后切换到代码点不进去的的环境,再点进这个环境的cv2里,把它的__init__.py
里的内容用刚才复制的全部替换了。
就是在win开始界面,找不到anaconda的安装文件夹了,使用它自带的cmd就很不方便,解决办法:
原因:
因为windows防火墙默认设置的是不让别人ping通的,所以方法就是,修改防火墙相关设置。
步骤:控制面板—>系统和安全—>Windows防火墙—>高级设置—>入站规则—>文件和打印机共享(回显请求 - ICMPv4-In)设置为==启用==。
如果是虚拟机能ping通百度,也能ping通宿主机,但是宿主机不能ping通虚拟机,这个时候就去看看VMware中虚拟网络编辑器以及网络设置中网段有没有设置成一致的。
Teamviewer在重装系统后,使用时重新登录,就会说已经达到可使用设备的上限,
出现上述错误的原因是:在升级gcc时,生成的动态库没有替换旧版本的动态库。
遇到这个错误:ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found,说明gcc的动态库版本过老了,就以2080ti来说,在使用yolox项目是就遇到了这个问题:
默认是用的/lib64/libstdc++.so.6 去到这里详看,版本是 libstdc++.so.6.0.19,
然后解决办法就是用anaoncda自带的库:export LD_LIBRARY_PATH=/root/anaconda3/lib:$LD_LIBRARY_PATH
然后去到/root/anaconda3/lib路径下,看到的版本就是 libstdc++.so.6.0.26
还有去改库的方法,看这里。
以及用工业相机时SDK也是这个问题
可以执行命令去检查动态库:strings /usr/lib64/libstdc++.so.6 | grep CXXABI
# 也能是查找“GLIBC”(这个的问题报错信息大概率就是/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found)
就会看到最高版本是不满要求的,会发现“strings /root/anaconda3/lib/libstdc++.so.6 | grep CXXABI” 里有满足要求的,就可以用 |
/usr/lib64 和 /lib64 里面内容好像是一样的,用哪个都一样
公司春节回来开启服务器后,输入nvidia-smi,就会得到标题那样的报错,针对ubuntu的话,网上看到比较多的
解决办法在这里,然后centos上类似用yum去处理,发现还是不行,然后发现根本问题是nouveau模块也在使用(lsmod | grep nouveau 发现不为空),就需要将其禁用掉,步骤如下: |
- vim /usr/lib/modprobe.d/dist-blacklist.conf
- 写入以下内容: blacklist nouveau options nouveau modeset=0
- 备份当前的镜像:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
- 建立新的镜像:
dracut /boot/initramfs-$(uname -r).img $(uname -r)
- reboot 重启
lsmod grep nouveau # 应该返回空 - nvidia-smi # 再输入应该就没问题了
点击chrome的快捷方式,然后在“目标(T)”那一列里,加上一个参数 –disable-background-networking 就可以了。(或许需要把桌面固定的chrome先取消掉,这里设置好后,点击打开后再固定一次)
参考的这里。
当有中文的时候,在最开始加一行:# coding=utf-8
不然遇到中文的时候,会出现类似于这样的错误“Non-ASCII character ‘\xe6’”。
看一下去这里下载,主要讲一下glic编译时,可能会报错一个:
1configure: error:
- LD_LIBRARY_PATH shouldn’t contain the current directory when
- building glibc. Please change the environment variable *** and run configure again.
解决办法:
在当前shell中执行export LD_LIBRARY_PATH=
,相当于把LD_LIBRARY_PATH这个环境变量清空,然后再configure,就会成功。
注册的时候,在注册界面那个继续按钮可能会一直转圈,,就没办法注册
或者是Epic平台无法登录,或是登录按钮一直转圈,那解决办法:
修改host文件,地址:C:\Windows\System32\drivers\etc\hosts
新增如下内容:
104.16.168.131 hcaptcha.com
104.16.168.131 newassets.hcaptcha.com
104.16.168.131 imgs.hcaptcha.com
安装更改一个缓存地址:这里
方法一:
打开 www.ipaddress.com 查询下面四个网站的 IP 。
- https://github.com/
- https://assets-cdn.github.com/ # 这个一般会有几个
- http://global.ssl.fastly.net/
- codeload.github.com
把这四个网站的地址复制到刚刚的完整进行查询,假如查询结果如下:
140.82.114.4 github.com 185.199.108.153 assets-cdn.github.com 185.199.109.153 assets-cdn.github.com # 这个暂时用用了两个 199.232.68.249 global.ssl.fastly.net 140.82.114.9 codeload.github.com
- 找到 Windows下的 hosts 文件,进行 DNS 映射,地址一般是在
C:\Windows\System32\drivers\etc\hosts
然后把内容写进去
# GitHub
140.82.114.4 github.com 185.199.108.153 assets-cdn.github.com 185.199.109.153 assets-cdn.github.com 199.232.68.249 global.ssl.fastly.net 140.82.114.9 codeload.github.com
- win+R,运行cmd,输入 ipconfig/flushdns 刷新 DNS 缓存即可。
方法二:
去到GitHub520这项目里找到新的host地址。
错误信息: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory”
这遇到两次了都是在docker容器中,用ubuntu安装好了qt的库,还是报这样的错,如果也可能是其它的动态库
解决办法: 全局搜索一下libQt5Core.so.5,前面安装环境都搞完的话,在docker容器中的/usr/lib/x86_64-linux-gnu里是有的,那就执行如下命令:(要注意 libQt5Core.so.5 所在的实际路径)
strip –remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5