环境
镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
关于镜像源命令(conda)
-显示镜像源地址
-添加镜像源地址(conda)
1
| conda config --remove channels url地址
|
-添加镜像源地址(pip)
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
1 2
| python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
1
| python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
|
-移除镜像源地址
1
| conda config --add channels
|
-清除下载缓存(创建虚拟环境错误时使用)
1 2
| conda clean -p conda clean -a
|
虚拟环境命令
-查看当前存在哪些虚拟环境
1 2
| conda env list conda info -e
|
-查看安装了那些包
-切换成32位虚拟环境
-检查并更新conda
-创建虚拟环境
1
| conda create -n your_env_name python=x.x
|
注:anaconda命令创建python版本为x.x,名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
-命令行检查当前python版本
1 2
| Linux: source activate your_env_nam Windows: activate your_env_name
|
-虚拟环境中安装额外包
1
| conda install -n your_env_name [package]
|
-关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)
windows:deactivate env_name
或者`activate root`切回root环境
Linux:source deactivate
-删除虚拟环境和环境下某个包
1 2
| conda remove -n your_env_name --all` conda remove --name $your_env_name $package_name
|
conda一键安装cuda和cudnn
1
| conda install cudatoolkit=11.3.1 cudnn=8.2.1
|
- CUDA 工具包 11.0 配合 cuDNN v8.0.2
- CUDA 工具包 11.1 配合 cuDNN v8.1.1
- 对不起,之前忘记最后一位了,最终把我自己坑惨了。。。
安装位置在library\lib
安装torch
GPU版本:
1
| conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
|
CPU版本
1
| conda install pytorch torchvision torchaudio cpuonly -c pytorch
|
其它(某些易混淆概念)
Pycahrm是一个python包管理工具,可以自由切换python版本,spyder是自带用于科学数据分析的工具,默认为base,需要进anaconda navigator内安装相应环境的spyder。
Python内容(不是教程!)
检查是否存在全局变量
1 2 3 4
| if "var_name" in globals(): print("var_nameexists!")elif "var_name" in locals(): print("var_name existslocally!")else: print("var_name does notexist.")
|
可以分别利用 globals()和 locals()在全局和本地范围内检查变量。
globals和locals这两个作用域函数都会返回字典——因此也执行上述的字典合并语法{x, y}。代码在合并范围后的字典中同时检查了test1和test2。
Opencv
裁剪图片
1
| resized1[y1:y2, x1:x2]=resized0
|
resized0是小图
resized1是大图,参数是左上点和右下点
在图片(或视频)中添加文字
示例:
1
| cv2.putText(img, str(i), (123,456)), font, 2, (0,255,0), 3)
|
各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细
其中字体可以选择
FONT_HERSHEY_SIMPLEX
Python: cv.FONT_HERSHEY_SIMPLEX
FONT_HERSHEY_PLAIN
Python: cv.FONT_HERSHEY_PLAIN
FONT_HERSHEY_DUPLEX
Python: cv.FONT_HERSHEY_DUPLEX
FONT_HERSHEY_COMPLEX
Python: cv.FONT_HERSHEY_COMPLEX
图片储存为numpy
示例:
1 2 3 4 5 6 7 8 9
| import cv2 import numpy as np
img=np.ones((200,200))
img=np.int8(img)
img=cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) cv2.imwrite("demo.jpg",img)
|
Win32api
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| win32api.GetCursorPos()
win32api.SetCursorPos((200, 200))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 200, 200, 0, 0) win32api.mouse_event(win32con.MUOSEEVENTF_LEFTUP, 200, 200, 0, 0)
win32gui.FindWindow(None, 'qq') win32gui.FindWindow('TXGuiFoundation', None)
hw = win32gui.WindowFromPoint(win32api.GetCursorPos())
gui.GetClassName(hw)
win32gui.GetWindowText(hw)
win32gui.GetwindowRect(hw)
|
一点好玩的东西
python可以通过反射调用C# dll库,首先在vs 2022内建一个C#类库,编译后在bin内寻找相应dll文件,复制到pycahrm项目内,导入pythonnet库,ide标红不要怕,跑就完事了,能通。
随后因为某些原因,又尝试调用c dll,照例打开vs2022,建立一个c++ dll文件,按惯例改文件名成c的后缀,网上教程很多,照着弄完事,技术很成熟。
于是乎,一个同时使用c、c#和python的乱炖项目诞生了……
——————忽然——————我发现如果使用mmap进行视频的共享,会因为不同程序的时钟问题卡住,一番尝试后还是改成python,事实证明python效率比c#差了一截,获取同样窗口截图占用更高——————