0%

pythondoc

环境

镜像源

清华: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)

-显示镜像源地址

1
conda config --show channels  

-添加镜像源地址(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

-查看安装了那些包

1
conda list

-切换成32位虚拟环境
1
set CONDA_FORCE_32BIT=1

-检查并更新conda
1
conda update 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
#使用numpy创建二维数组
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())
# 获取窗口classnam
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#差了一截,获取同样窗口截图占用更高——————