Ubuntu20.04 在anaconda上,opencv-python支持h264编码

2023-05-16

最新更新

下边以前整绕了,见这篇即可,若是想c++编译opencv看下边,忽略以前折腾的支持opencv-python……

以下旧

若装了anaconda想屏蔽anaconda编译opencv见

opencv使用ffmpeg进行视频流的编解码,对于h264格式视频,需要额外安装openh264

  FFMPEG build includes support for H264 encoder based on the OpenH264 library.
  OpenH264 Video Codec provided by Cisco Systems, Inc.
  See https://github.com/cisco/openh264/releases for details and OpenH264 license.
  OpenH264 library should be installed separatelly. Downloaded binary file can be placed into global system path
  (System32 or SysWOW64) or near application binaries (check documentation of "LoadLibrary" Win32 function from MSDN).
  Or you can specify location of binary file via OPENH264_LIBRARY environment variable.

使用conda安装libopenh264库即可。参考conda-forge / packages / openh264

conda install -c conda-forge openh264

如果无法安装成功,那么就下载该文件进行手动安装

pip install --use-local openh264-2.1.1-h780b84a_0.tar.bz2

遇到的问题

用anaconda下的python跑依旧无法编码h264,但Ubuntu自带的即usr/bin下的python3.x 跑却是可以,
可以由此寻找解决思路,很不幸,最终还是没搞懂啥情况。
估计还是自带的python可以正确找到openh264

参考
参考

上面的问题没法解决,也许可以降低版本吧,没试

最终采取方案,在anaconda下,通过编译opencv使得opencv-python支持h264

操作系统是 Ubuntu20.04 64位
官网c++编译教程1
opencv-python编译教程2

首先Ubuntu得能放h264

sudo apt install ubuntu-restricted-extras

开始没反应过来是Ubuntu不能放,一直以为是自己的编译问题,,,明明编译成功了为啥还是opencv-python存的h264视频还是不能放,,,结果,呃呃。

安装依赖

自行安装anaconda,然后安装opencv依赖:

# 必须的 参考官网教程和试错之后
sudo apt install build-essential cmake git python3-dev python3-numpy \
libavcodec-dev libavformat-dev libswscale-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer1.0-dev libgtk-3-dev libgtk2.0-dev \
libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev \
libopencv-dev x264 libx264-dev libssl-dev ffmpeg

#如果编译之后不支持h264,把这部分装装在编译试一试
sudo apt remove -y x264 ffmpeg libx264-dev
sudo apt install x264 libx264-dev ffmpeg pkg-config 
#gdalinfo --version
# 可选的
sudo apt install libgtk2.0-dev #配置 WITH_GTK_2_X=ON
sudo apt install gdal-bin  #支持gdal,cmake配置WITH_GDAL=ON
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  #python2编译需要,就不要了

建议卸载pip安装的opencv-python系列,我没试过不卸载会咋地,,,应该会被覆盖吧,,,

编译安装

关于cmake的参数配置见官网教程
下载opencv源码:
https://github.com/opencv/opencv.git
下面这个可以不要,不然各种download让你焦虑
https://github.com/opencv/opencv_contrib
上面opencv和/opencv_contrib都是4.5.3

关于不装opencv-contrib有两个个download下载可以见下方分割线后面提到的,但貌似不处理也没啥,另外可以安装opencv-contrib,按需求。
以下是成功的cmake配置,未装opencv-contrib。不指定CMAKE_INSTALL_PREFIX默认为/usr/local,要指定其他python3所以路径:
以下是不添加opencv_contrib的版本:
opencv目录下新建build文件夹,然后cmake一顿操作:

cmake -D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_opencv_python2=OFF \
-D WITH_GDAL=ON \
-D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-D PYTHON3_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; import os; print(os.path.join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))") \
-D PYTHON3_EXECUTABLE=$(which python) \
-D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

#
#若考虑补齐下载,见分割线后面的记录里的下载没下载成功的包
#然后
sudo make -jx
#x是你cpu拿多少核来跑,建议比所有核-1或者-2,全部跑容易卡死报错,即下面
make -j$[$(nproc)-1]
#sudo make -j${nproc}
#然后
sudo make install

成功cmake截图
在这里插入图片描述

遇到报错

ImportError: /home/user/anaconda3/bin/../lib/libgio-2.0.so.0: undefined symbol: g_uri_join
#动态库链接问题,应该链接usr/lib下的,结果被anaconda截胡了。重新软链接
locate libgio-2.0.so.0
/home/user/anaconda3/lib/libgio-2.0.so.0
/home/user/anaconda3/lib/libgio-2.0.so.0.6800.1
...................
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.6400.6
mv /home/user/anaconda3/lib/libgio-2.0.so.0 /home/user/anaconda3/lib/libgio-2.0.so.0bp
sudo ln -s /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 /home/user/anaconda3/lib/libgio-2.0.so.0

后续环境问题

目前尝试毕竟好的解决方案见:
记录anaconda一大坑小节

下方是有缺解决方案,嫌麻烦的可以采取:
在安装albumentations时,其依赖opencv-python-headless,然后opencv就又gg了,其实一思考,觉得可能是安装opencv-python-headless时把什么破坏了,然后我就在pip安装opencv-python,然后奇迹般又好了。如果opencv-python有很多QObject::moveToThread: Current thread (0x55c9b9d98c60) is not the object’s thread (0x55c9b9988490).这种行,没事,卸载opencv-python,opencv-python-headless,albumentations在安装opencv-python-headless,albumentations,去编译文件夹uninstall在install。

尝试记录

1.安装依赖时不装ffmpeg,编译之后会发现不支持h264,结果还是支持,,不清楚原因了,也许自己编译就默认支持h264或者anaconda里有相关的库给对上了,,

记录失败

以下是失败的一些尝试,最后才发现自己还是太嫩了,第一没有理解到anaconda在装了之后就覆盖了系统自带的python的路径,对的你cmake不指定PYTHON3_EXECUTABLE也能自动找到anaconda下的python。第二是关于编译之前的cmake,都还没搞清楚有哪些,默认值就在哪儿蒙着头尝试。
实际上在清楚了opencv的最后install安装方式是:
在这里插入图片描述
这种安装方式说实话,你去指定安装到anaconda的位置,说不定就破坏anaconda自己本身的环境,因为anaconda下有同名文件夹啊。所以安装位置CMAKE_INSTALL_PREFIX不如默认,,,

失败的尝试,留着哈哈。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
官网编译教程
关于cmake的参数配置见官网教程
看着介绍去进行camke的配置。

#CMAKE_INSTALL_PREFIX 可以是/usr/local/opencv4,这个无所谓,安在anaconda下主要是最后几句。
#后面关于python的路径设置以自己机子anaconda的设定为准,需要注意的是python版本和你使用的(虚拟)环境一致。
# WITH_FFMPEG BUILD_opencv_python3是默认开启的
#-D WITH_IPP=ON \ WITH_GDAL 检测

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D WITH_GDAL=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_opencv_python2=OFF \
-D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-D PYTHON3_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; import os; print(os.path.join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))") \
-D PYTHON3_EXECUTABLE=$(which python) \
-D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

#OPENCV_ENABLE_NONFREE 这个参数的作用是启用OpenCV中的非免费模块,如果你想使用SIFT、SURF等算法,则必须要开启,否则等你调用它们的时候会提示它们是非免费模块,没有启用

#此处停一停别急着编译,后面还要回来的哈哈

其实编译opencv主要这个参数太多,设置不好就编译make报错,,另外就是各种动态库和依赖的问题

下载没下载成功的包

cmake之后,找找download_with_wget.sh或者download_with_curl.sh,多半有,查看一个会发现:
在这里插入图片描述

有两个下载没下载好,原因你懂的,尝试了挂代理貌似没啥用,只要手动复制链接下载下来,再去修改对应的文件:
下载文件:ippicv_2020_lnx_intel64_20191018_general.tgz和ade-0.1.1f.zip

#查看md5
md5sum ippicv_2020_lnx_intel64_20191018_general.tgz
7421de0095c7a39162ae13a6098782f9  ippicv_2020_lnx_intel64_20191018_general.tgz
md5sum ade-0.1.1f.zip
b624b995ec9c439cbc2e9e6ee940d3a2  ade-0.1.1f.zip

打开./3rdparty/ippicv/ippicv.cmake文件修改红框内容,md5可能会改,见上面。
下载路径修改为ippicv安装包所在本地路径,注意FILENAME是否和下载的一样,一样的就不管,不然对应修改。注意路径最后还有个/的,别搞漏了。
在这里插入图片描述
如下:
在这里插入图片描述
“file:/home/user/Downloads/”
另外的ade-0.1.1f.zip同样类似的操作,修改文件./modules/gapi/cmake/DownloadADE.cmake
然后删除cmake重新cmake

#然后
sudo make -j${nproc}
#然后
sudo make install

遇到的报错

lib库版本冲突此方案更加稳妥,下面的软链接方案舍弃:

#cmake结束时可见这种警告
    runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/user/anaconda3/lib
    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/user/anaconda3/lib

既然都警告了,那就粗暴的把 /home/user/anaconda3/lib下libpng16.so.16、libz.so.1备份成libpng16.so.16bp,libz.so.1bp,然后重新cmake,就会没有警告了,,
之后正常编译,安装,最后再把刚刚的备份恢复回来就好。

这样好处在于在编译之前就把cmake的问题都解决了。

软链接方案舍弃
遇到的报错是/usr/bin/ld: 开头的库报错,一般是找不到,或者几个位置都有,版本不对,anaconda和usr/lib下的版本对应不上,解决方案是通过备份anaconda下的库,在软链接到usr/lib下的版本,还有千万别反过来,因为有可能导致开机gg,注意这个操作一定每一步都记住,动了什么改了什么,,万一出问题还能复原
比如Ubuntu clean … files,… blocks
这个时候就需要去恢复模式改回来,,,,,我最后是忘记我做了啥操作了,遇到这个问题,只能强制将usr/lib下的backup恢复成原来的,把anaconda给禁用了,.bashrc全给注释掉,,,。

举例,慎重操作,记住操作了啥,把谁改软链接了!:

/usr/bin/ld: /home/user/anaconda3/lib/libpangoft2-1.0.so.0: undefined reference to `pango_font_family_get_face'

即报错是anaconda下,那就把usr/lib的链接过来到Anconada下,报错usr/lib下,就把Anconada的链接到usr/lib下

通过locate查看libpangoft2-1.0.so.0在哪些位置
locate libpangoft2-1.0.so.0
输出(多余的删掉没写出来):
/home/user/anaconda3/lib/libpangoft2-1.0.so.0
/home/user/anaconda3/lib/libpangoft2-1.0.so.0.4503.0
/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0.4400.7
可以看到,/home/user/anaconda3/lib/和/usr/lib/下的版本不对应。
第一步:
anaconda3下的.so备份以下
cd /home/user/anaconda3/lib
sudo mv libpangoft2-1.0.so.0 libpangoft2-1.0.so.0backup
sudo mv libpangoft2-1.0.so.0.4503.0 libpangoft2-1.0.so.0.4503.0backup
第二步,将/usr/lib下的版本软链接到anaconda下:
sudo ln -s /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 libpangoft2-1.0.so.0
sudo ln -s /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0.4400.7 libpangoft2-1.0.so.0.4400.7
完事,如果没动依赖,可以继续make……动了依赖啥的,最好删除从新cmake在make

编译安装之后报错
安装之后一台正常,一台报错
Video from IP camera can’t find starting number cv::icvExtractPattern
原因安装时缺乏一些依赖包,实际上make过程有打印提示,已将依赖添加在开头

ffmpeg异常
ffmpeg用apt安装显示一些包不匹配,我解决是把之前自己编译安装的文件删除干净

安装opencv_contrib

下面是尝试安装opencv_contrib,有需要可以装

#有时候要下东西,貌似有其他解决方案,比如换成下国内的,但好像最后还是编译成功,…
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-D WITH_FFMPEG=ON \
-D BUILD_TIFF=ON \
-D WITH_IPP=ON \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D WITH_GSTREAMER=ON \
-D WITH_GTK=ON\
-D WITH_GTK_2_X=ON \
-D WITH_OPENCL=ON \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/xxxxxxxxxxxx/opencv_contrib-4.5.3/modules \
-D OPENCV_ENABLE_NONFREE=ON \
-D PYTHON3_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; import os; print(os.path.join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))") \
-D PYTHON3_EXECUTABLE=$(which python) \
-D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

#然后
sudo make -j${nproc}
#然后
sudo make install

后续遇到的奇葩问题

后续imread、imwrite居然无法使用,但是vdeocaptue可以拉流,可以保存h264编码,一脸懵逼。
只好把编译的卸掉,正常pip install opencv-python ,结果,,,出现imread老是出这个警告而且还无法ctrl+c,郁闷了,

QObject::moveToThread: Current thread (0x55c9b9d98c60) is not the object's thread (0x55c9b9988490).
非常多类似行,,,

一查吓一跳,以下:
在这里插入图片描述
看完就猜想会不会之前编译opencv遗留了对lib软链接的操作导致的?或者anaconda里遗留了部分libraries,然后直接pip装也来了部分,然后用pip编译安装哈哈,最后没问题了

pip install --no-binary opencv-python opencv-python

这是在opencv编译安装的基础上在进行pip的安装,感觉是负负得正了,应该是冥冥之中把动态库和libraries等给搞正确了,也许还需要反过来操作,最好ldconfig更新动态连接库或者重启下电脑,反正最后就成了,,
我也尝试了卸载opencv的编译之后,单独用pip编译安装,最后有报错:

Traceback (most recent call last):
  File "ceshi.py", line 1, in <module>
    import cv2
  File "/home/user/.local/lib/python3.8/site-packages/cv2/__init__.py", line 5, in <module>
    from .cv2 import *
ImportError: /home/user/mysoft/anaconda3/bin/../lib/libgio-2.0.so.0: undefined symbol: g_uri_join

lib库冲突,可以将anaconda/lib下的libgio-2.0.so 所有相关 软链接到 usr/lib/x86…下面对应的就好了,试了就好了,,,
不管怎么样,如果真想恢复最初,应该是要将之前的lib软链接操作全部复原。这就是之前说的为啥要保留步骤,不然万一出问题你很难还原了。

继续上个问题的后续

哎,opencv的python版本四个,当然常见前三个,opencv-python-headless opencv-python opencv-contrib-python opencv-contrib-python-headless
opencv-python 是只包含了主要模块的包,opencv-contrib-python包含了主要模块以及扩展模块,扩展模块主要是包含了一些带专利的收费算法(如shift特征检测)以及一些在测试的新的算法(稳定后会合并到主要模块)。
带headless的 不包含任何gui功能。它体积较小,适用于更受限制的环境,比如imshow你就用不了。
后面我装albumentations 它依赖opencv-python-headless,自动给我装上了,这我就懵逼了,好不容易微妙的平衡被打破,gg,刚装好的opencv又崩了。所有思路是我提前把opencv-python-headless,opencv-python都装上,这样就不会自动装依赖了。
最后尝试方案是:

所有卸载,编译安装opencv带opencv-contrib支持ffmpeg的python3,
然后pip编译安装opencv-python-headless,在然后pio编译安装 opencv-python。
最后在pip编译安装 albumentations 
不想pip 编译安装?报错:
ModuleNotFoundError: No module named 'qudida'
有问题,还是不行继续尝试。

为啥不先opencv-python在opencv-python-headless,因为我试了,opencv-python-headless把opencv-python编译好的又给破坏了,,,

最后,albumentations还是报错找不到某个组件,但是opencv-python正常使用,h264支持,总之暂时没找到解决方案

动态库文件管理

以上挺折腾的,最后我在想:
如果一开始我装好了ffmpeg,conda在装好openh264,再用pip编译安装opencv,会不会就可以支持h264呢,万一人家pip编译的时候是发现安装有ffmpeg就默认支持ffmpeg,或者链接到了openh264?可惜我两台Ubuntu都被污染过了,下回有机会拿到新的在试试这个思路。
装ffmpeg在pip编译opencv不行,下回加上openh264在试试
以上两个尝试都不行,,

新的问题

在一台服务器上卸载干净opencv之后,pip正常安装opencv-python,一定要求加–user,最后导致的情况是,原先用sudo加具体路径的python具体无法运行了。

echo "xxx" | sudo -S /home/xxx/mysoft/anaconda3/bin/python xxx.py

具体原因用sudo which python 发现是链接到usr/bin/python了。
觉得可能是之前编译,要么是其本身编译替换了什么,要么是我修改了的动态库软链接有的还没修改回来。
其实我也不清楚,明明安装在普通用户下的anaconda,居然可以加sudo运行。
而在编译之后,修复会正常的环境,却又无法运行了。
最后既然找不到我就用su去root权限下,用anaconda下的conda init bash了一些,在root下的.bashrc添加了普通用户下的anaconda的环境变量。然后在su下,确实进入到了anaconda的环境下,结果依然有问题,opencv-python依然找不到,其他比如torch能找到。但是普通用户下用pip list是可以看到的。这就奇了怪了,因为时间原因没有深究,我直接在su下用pip重新把opencv相关安装了一遍,然后警告:

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

自然是无视,,我估计是覆盖安装了,,,
不管怎么样,这之后在su下opencv相关又能找得到了,终于正常了。

另外一台电脑当时没反应过来,而且需要opencv-python至此h264,最后采用的这个方案解决权限问题,粗暴直接
后面发现无论是环境装在普通下还是root下,其实都有办法解决,不过建议最稳定,完整的环境装在root下,其他用户的环境可以当作测试一类用,和root用户下的也就隔开了。

总结

第一是编译要弄清楚装了哪些,装哪儿了,类似opencv的配置输出就很清楚,而且安装文件路径都告诉你了,一开始没看,导致把安装位置防止和anaconda一起,导致覆盖了anaconda某些环境,也许正是这样,才出现了编译之后anaconda下python突然管理员权限运行出现各种问题,比如找不到包。。。
基本上编译注意一是需要什么依赖,安装了什么,安装位置在哪儿,也就无伤大雅了。

参考
https://vitux.com/opencv_ubuntu/
https://blog.csdn.net/GungnirsPledge/article/details/108597474
https://www.jianshu.com/p/26dd452a362e

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20.04 在anaconda上,opencv-python支持h264编码 的相关文章

  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • 操作系统自学(十三)生产者消费者问题以及多生产者多消费者问题

    生产者消费者问题 系统中有一组生产者进程和消费者进程 xff0c 生产者进程每次生产一个产品放入缓冲区 xff0c 消费者进程每次从缓冲区中取出一个产品使用 xff08 产品为某种数据 xff09 生产者消费者共享一个初始为空 大小为n的缓
  • 情人节!原来程序员也可以那么浪漫!

    程序员的情人节 前言演示烟花 树叶飘落特效首页代码片段特点介绍源码地址情人节没有对象的点个赞吧 前言 2月14日 xff0c 是西方的传统节日之一 男女在这一天互送巧克力 贺卡和花 xff0c 用以表达爱意或友好 xff0c 现已成为欧美各
  • ubuntu pycharm社区版安装

    1 pycharm安装包下载并解压 默认是 xff1a home 你的用户名 Downloads xff0c 右键安装包 xff0c 点击 Extract Here 意思是提取到这里 xff0c 相当于解压 xff0c 或者还可以使用tar
  • 解决Ubuntu20.04插入英伟达计算卡后无法开机问题-Ubuntu双显卡切换

    解决Ubuntu20 04插入英伟达计算卡后无法开机问题 Ubuntu双显卡切换 问题详述问题分析问题解决 ubuntu双显卡切换 问题详述 本人新配了一台个人使用的机器学习服务器 对环境配置可能有影响的硬件如下 xff1a 华硕B660M
  • Matlab函数自带函数缺失问题解决

    最近换了新电脑做simulink仿真时 xff0c 发现添加高斯白噪声awgn函数报错了 xff0c 找了许久发现是没安装awgn函数所在的工具箱communication Toolbox工具箱 xff0c 里面包含了高斯白噪声函数 xff
  • 针对server2016网络中看不到其他电脑的解决方法

    文章目录 问题描述解决方法 问题描述 server2016网络空白 xff0c 不显示其他电脑 解决方法 第一步 xff1a 首先找到控制面板 gt gt 启用或关闭Windows功能 gt SMB 1 x 勾选确认 第二步 xff1a w
  • 详写 UEFI & BIOS 安装 Arch Linux

    Arch Linux官方安装向导 xff1a https wiki archlinux org index php Installation guide 文章目录 1 准备2 VirtualBox 打开 EFI3 安装验证启动方式连接互联网
  • neovim 配置 (markdown编辑)

    配置地址 xff1a https github com GIN 18 nvim 文章目录 快速输入markdown预览表格模板从剪贴板插入图片 快速输入 markdown预览 插件地址 xff1a iamcco markdown previ
  • Arch Linux 下安装 dwm (平铺式窗口管理器)

    suckless官网 xff1a suckless org 文章目录 1 安装 xorg 43 xorg xinit 43 git 43 base devel2 安装yay3 安装字体4 安装终端模拟器stalacritty 5 克隆 dw
  • pvs中pv显示[unknown]解决方法、正确剔除一个vg流程方法【不影响vg已有的lv数据】、vgs容量和硬盘容量显示不一致解决方法

    文章目录 pvs中pv显示 unknown 解决方法报错产生情况报错说明解决方法解决方法 无法修复情况 xff0c 重要 xff01 xff01 xff01 解决方法 正常情况下 正常的剔除一个vg流程 不影响vg已有lv 环境准备强制剔除
  • Arch Linux 美化 (st + dwm)

    我的dwm 配置 xff1a https github com GIN 18 dwm 我的st配置 xff1a https github com GIN 18 st 文章目录 1 安装 st2 安装 dwm3 美化壁纸 feh 合成管理器
  • Windows 下可用的 TUI 工具

    编辑器 neovim GitHub 地址 xff1a neovim neovim 个人配置地址 xff1a GIN 18 nvim 安装 neovim 在 powershell 中 xff1a scoop install neovim 文件
  • 使用VNC运行Arch Linux容器中的dwm

    运行容器 sudo docker run it d p 5901 5901 name arch vnc archlinux 进入容器 sudo docker exec it arch vnc bin bash 修改 pacman 国内源 添
  • 如何进入gnome桌面环境

    ctrl 43 alt 43 F7 进入GNOME桌面环境
  • SpringMVC配置类

    用配置类的方式替代web xml文件 主要的接口 xff1a WebApplicationInitializer xff0c 这个接口的onStartup 方法能够在服务器启动时进行调用 示例 xff1a span class token
  • Note - Linux

    1 Terminal Command 1 1 ls list List files of current direction or target direction ls option file OptionExplanation aLis
  • PyQt5使用QtWebEngineWidgets调用js

    更新时间 xff1a 2023 03 24 使用版本 xff1a python xff1a 3 7 0 IDE xff1a pycharm pip install PyQt5 61 61 5 10 1 i https pypi douban
  • Android studio删除插件

    找到Android studio 插件放电脑上的所在位置 xff1a C user wiger AppData Roaming Google AndroidStudio4 1 plugins 在里面可以删掉想要删除的插件
  • cmake编译

    CMake编译原理 CMake是一种跨平台编译工具 xff0c 比make更为高级 xff0c 使用起来要方便得多 CMake主要是编写CMakeLists txt文件 xff0c 然后用cmake命令将CMakeLists txt文件转化
  • Ubuntu20.04 在anaconda上,opencv-python支持h264编码

    最新更新 下边以前整绕了 xff0c 见这篇即可 xff0c 若是想c 43 43 编译opencv看下边 xff0c 忽略以前折腾的支持opencv python 以下旧 若装了anaconda想屏蔽anaconda编译opencv见 o