PIP

  • spacepy安装失败

    pip install git+https://github.com/spacepy/spacepy.git
    
  • pip换源

    修改 ~/.pip/pip.conf (没有就创建一个)

    [global]
    timeout = 6000
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    trusted-host = pypi.tuna.tsinghua.edu.cn
    

    使用默认源

    pip install 模块名 -i https://pypi.org/simple
    

    快速使用指定源

    pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install 模块名 -i https://pypi.douban.com/simple/
    

    使用proxy下载, 开着vpn就无法使用第三方源, 这时需要使用—-proxy

    --proxy http://127.0.0.1:xxxx
    

    conda直接输入

  • windows terminal 调用虚拟环境

    # 管理员打开powershell
    set-executionpolicy remotesigned
    

Anaconda

  • python 3.8 使用pip报错.

    • urllib3版本过高, 降低urllib3版本
    • 使用国内服务器
    pip install requests==2.20
    或者使用下面的命令降低版本:
    pip install urllib3==1.25.8
    
    pip install urllib3==1.25.11 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    
  • python virtualenv 下配置 pip

    • 查找pip调用配置的路径

      	pip config -v list
      
    • 当前项目文档下的venv文件夹中打开pip.ini, 配置

      如: pip使用阿里pip源

      [global]
      index-url = http://mirrors.aliyun.com/pypi/simple
      [install]
      trusted-host=mirrors.aliyun.com
      
    • 系统环境

      cd %appdata%
      mkdir pip
      cd pip
      vim pip.ini
      
      [global]
      timeout = 6000
      index-url = https://pypi.tuna.tsinghua.edu.cn/simple
      trusted-host = pypi.tuna.tsinghua.edu.cn
      
  • Python-获取图片的大小

    pip install pillow  # 安装pillow
    
    import os
    from PIL import Image
    
    path = os.path.join(os.getcwd(),"23.png")
    img = Image.open(path)
    
    print img.format        # PNG
    print img.size          # (3500, 3500)
    
  • anaconda换源

    anaconda | 镜像站使用帮助 | 北京外国语大学开源软件镜像站 | BFSU Open Source Mirror

    • vim ~/.condarc

      channels:
        - defaults
      show_channel_urls: true
      default_channels:
        - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
        - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
        - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
      custom_channels:
        conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
        simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      

      运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

  • anaconda 虚拟环境 export 环境

    Managing environments - conda 4.10.3.post41+bc22d85c documentation

    Anaconda export Environment file

    conda create -n myenv python=3.8.8  # 创建
    conda remove --name myenv --all #  删除
    
    # 导出环境
    conda env export | grep -v "^prefix: " > environment.yml
    # 创建环境, 并导入包
    conda env create -f environment.yml
    
  • wsl conda 无法联网

    可能原因:未知

  • keras tensorflow 版本问题

    版本问题—keras和tensorflow的版本对应关系

  • torch 多卡训练环境配置

    # 环境
    conda update -n base conda
    conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia
    
    # 删除yolov5/requirements.txt中以下三个包
    - opencv-python[version='>=4.1.2']
    - torch[version='>=1.7.0']
    - thop
    
    conda install --yes --file requirements.txt
    pip 安装上面三个包
    

Jupyter notebook

  • windows 使用jupyter notebook,远程使用jupyter notebook

    1. 服务器端安装anaconda

    2. 打开Anaconda Prompt,输入jupyter notebook –generate-config生成配置文件,并记录路径。

    3. 继续在Anaconda Prompt中输入ipython,然后输入from notebook.auth import passwd,最后输入passwd(),设置密码,然后复制输出生成的密钥文件。

    4. 从第一步记录的路径找到配置文件,使用记事本打开配置文件。

    5. 在配置文件中添加以下命令,并设置访问端口和拷贝生成的密钥。

      c.NotebookApp.ip = '*' # 设置远程所有ip可访问
      c.NotebookApp.open_browser = False # 关闭浏览器
      c.NotebookApp.password=u'密钥' # 输入上面生成的密钥
      c.NotebookApp.port = 8888 # 设置SSH访问的端口
      c.NotebookApp.allow_remote_access = True # 允许远程连接
      
    6. 花生壳内网映射http,访问限制不开。

      Untitled

    7. 生成后,Anaconda Prompt输入

      jupyter notebook # 保持开启状态
      
    8. 浏览器打开获得的网址就行。(网址不需要写端口)

  • jupyter notebook 使用虚拟环境

    虚拟环境下安装jupyter notebook

    conda install nb_conda
    jupyter notebook
    
    • kernel切换(切换虚拟环境)

      需要在这个虚拟环境中安装ipykernel

      python -m ipykernel install --user --name py27 # py27是目标虚拟环境名
      
  • jupyter notebook 配置自动代码补全和Markdown文件的目录

    • 进入base环境

      pip install jupyter_contrib_nbextensions # 没有设置源的话: -i https://pypi.mirrors.ustc.edu.cn/simple
      jupyter contrib nbextension install --user
      pip install jupyter_nbextensions_configurator
      jupyter nbextensions_configurator enable --user
      
    • 安装成功后,关掉Jupyter notebook重新打开,观察是否安装成功,即多了一个nbextensions。

      Untitled

  • jupyter里ipynb和py文件的相互转换

    • 在name.ipynb所在目录下打开终,输入以下命令

      jupyter nbconvert --to script name.ipynb    
      # name.ipynb是要转换文件的名字,转换后在name.ipynb所在目录下出现name.py文件
      
  • jupyter notebook 快捷键

    Jupyter Notebook 有两种键盘输入模式。
    
    编辑模式,允许你往单元中键入代码或文本;这时的单元框线是绿色的。
    命令模式,键盘输入运行程序命令;这时的单元框线是灰色。
    命令模式 (按键 Esc 开启)快捷键:
    Enter : 转入编辑模式
    Shift-Enter : 运行本单元,选中下个单元
    Ctrl-Enter : 运行本单元
    Alt-Enter : 运行本单元,在其下插入新单元
    Y : 单元转入代码状态
    M :单元转入markdown状态
    R : 单元转入raw状态
    
    设定 1 级标题
    设定 2 级标题
    设定 3 级标题
    设定 4 级标题
    设定 5 级标题
    设定 6 级标题
    Up : 选中上方单元
    K : 选中上方单元
    Down : 选中下方单元
    J : 选中下方单元
    Shift-K : 扩大选中上方单元
    Shift-J : 扩大选中下方单元
    A : 在上方插入新单元
    B : 在下方插入新单元
    X : 剪切选中的单元
    C : 复制选中的单元
    Shift-V : 粘贴到上方单元
    V : 粘贴到下方单元
    Z : 恢复删除的最后一个单元
    D,D : 删除选中的单元
    Shift-M : 合并选中的单元
    Ctrl-S : 文件存盘
    S : 文件存盘
    L : 转换行号
    O : 转换输出
    Shift-O : 转换输出滚动
    Esc : 关闭页面
    Q : 关闭页面
    H : 显示快捷键帮助
    I,I : 中断Notebook内核
    0,0 : 重启Notebook内核
    Shift : 忽略
    Shift-Space : 向上滚动
    Space : 向下滚动
    编辑模式 ( Enter 键启动)下快捷键
    Tab : 代码补全或缩进
    Shift-Tab : 提示
    Ctrl-] : 缩进
    Ctrl-[ : 解除缩进
    Ctrl-A : 全选
    Ctrl-Z : 复原
    Ctrl-Shift-Z : 再做
    Ctrl-Y : 再做
    Ctrl-Home : 跳到单元开头
    Ctrl-Up : 跳到单元开头
    Ctrl-End : 跳到单元末尾
    Ctrl-Down : 跳到单元末尾
    Ctrl-Left : 跳到左边一个字首
    Ctrl-Right : 跳到右边一个字首
    Ctrl-Backspace : 删除前面一个字
    Ctrl-Delete : 删除后面一个字
    Esc : 进入命令模式
    Ctrl-M : 进入命令模式
    Shift-Enter : 运行本单元,选中下一单元
    Ctrl-Enter : 运行本单元
    Alt-Enter : 运行本单元,在下面插入一单元
    Ctrl-Shift-- : 分割单元
    Ctrl-Shift-Subtract : 分割单元
    Ctrl-S : 文件存盘
    Shift : 忽略
    Up : 光标上移或转入上一单元
    Down :光标下移或转入下一单元
    

Pycharm

  • 服务器show图片失败, 远程无法显示图片

    # 服务器没装图形化界面
    apt-get install xorg openbox
    
    # 只需要安装qt
    pip install pyqt5
    
    使用MobaXterm_Personal_22.0远程登陆server或直接ssh远程登陆server(X11协议开启)
    需要保持登陆的状态
    echo $DISPLAY #查看显示设备
    localhost:14.0  # 显示结果
    
    export DISPLAY=localhost:14.0
    
    之后就能显示imshow图片了
    
    • 方法2

      File->Settings->Plugins
      OpenCV Image Viewer
      

Packages

  • tqdm

    • 迭代器 tqdm(iterator) 可以将任意For循环显示成进度条形式

    • 使用方式

      # original
      for ele in list:
          ...
      
      # tqdm
      for ele in tqdm(list):
          ...
      
      # change tqdm log
      l = tqdm(list)
      for ele in l:
          l.set_description(f"xxx: {ele}")
          ...
      
      # tqdm interval log
      l = tqdm(list)
      for ele in l:
          l.update(10)  # 间隔10个循环更新一次信息
          ...
      l.close() # 关闭tqdm
      
  • 多线程

    from multiprocessing import Pool
    
    def apply():
        """
        多线程所调用apply方法
    		:return: list_crop: 处理完成的列表片段
        """
        return list_crop
    
    def init_process(g_var1, g_var2, g_var3):
        """
        全局函数, 初始化线程
        :param global_vars: 全局的参数 g_var1 g_var2 g_var3
        :return:
        """
        global input_path, output_path, first_use
        input_path, output_path, first_use = g_var1, g_var2, g_var3
    
    list_crop  # 待处理列表的切片(切成线程的分数)
    
    with Pool(processes=8, initializer=init_process, initargs=(input_path, output_path, first_use,)) as pool:
            list_crop_done = apply(list_crop) # 一个线程处理一个切片
            res_list += list_crop_done # 处理完后叠加到结果list
    
  • librosa

    使用python对音频进行降采样

    y_48k, sr = librosa.load(wav_filename, 48000) # 读取原音频
    y_16k = librosa.resample(y=y_48k, orig_sr=48000, targe_sr=16000) # 降采样
    
  • nohup无法打印python的print函数

    • 是print的缓存问题
    nohup python -u test.py >> nohup.out 2>&1 &
    
  • python运行脚本时打印信息同时保存信息

    python xxx.py 2>&1 | tee [log file]
    

Vscode 问题

  • vsode python format 格式化失效

    打开设置,搜索python.formatting.provider,选择autopep8

    pip install pep8
    pip install --upgrade autopep8
    
    • 2023年python.formatting.provider 可能已经找不到了, 会出现以下问题
      • formatter server 启动失败
      • 报错 You have deprecated linting or formatting settings for Python [duplicate]
      • The setting "editor.defaultFormatter" for Python is set to "ms-python.python" which is deprecated.
      • 解决方法
        • vscode 配置文件, 就是那个json文件中, 注释掉灰色的代码 (目前不适用的代码)
        • "[python]": editor.defaultFormatter 如果是ms-python.python, 改成autopep8.
  • vscode 无法远程连接问题

    • 如果遇到没log但是无法远程连接的问题, 直接kill服务器所有关于vscode的进程
    • 还有问题就删除服务器中.vscode-server文件夹.
    • 关闭账号设置同步
    • 降低vscode版本
  • vscode python debug 路径问题

    只需要在debug的文件开头调整路径就行

    import os
    import sys
    os.chdir(sys.path[0])