【Debug】Python开发工具Error记录

1、Anaconda创建的环境在pycharm中显示不出来的解决方法

说明

写这篇博客的原因是,用conda创建的环境在VSCode、VS中都能识别,在Pycharm里面默认不显示。
Pycharm版本为2022.2.2,conda版本为4.14.0。

解决步骤

  • 此处默认不显示Coda环境:
    此处不显示

  • 点击Interpreter Setting后,点击Show ALL
    Setting

  • 记得将这个筛选漏斗关掉(漏斗的意思是隐藏虚拟环境)
    在这里插入图片描述

  • 关掉后就显示了
    在这里插入图片描述

  • 移除关联就会常显示
    在这里插入图片描述
    或者添加解释器,选择现有环境

在这里插入图片描述

2、conda更新出现The current user does not have write permissions to the target environment的解决办法

原因

使用numpy时出现显示缺少module
在这里插入图片描述

解决思路

尝试使用pip重新安装,显示依赖版本有冲突,使用conda安装numpy,显示缺少权限。百度的教程需要修改conda安装 文件夹的权限,感觉很麻烦,而且conda文件夹很大,修改起来费劲儿。
在这里插入图片描述
在这里插入图片描述

成功解决

使用管理员权限打开CMD或者Powershell或者Anaconda Powershell Prompt,然后运行conda命令,成功解决。
在这里插入图片描述

3、pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

临时方案

pip时附带参数

pip install pyOpenSSL -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
或者
pip install pyOpenSSL -i http://pypi.douban.com/pypi/simple --trusted-host pypi.douban.com

解决方案

复制Miniconda3\Library\bin下的文件到Miniconda3\DLLs
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、qt.qpa.plugin: Could not find the Qt platform plugin “windows” in “xxxxx”

说明

  • conda安装Pyside6,conda安装在C盘时,注意管理员权限
conda install -c conda-forge pyside6
  • 设置环境变量QT_QPA_PLATFORM_PLUGIN_PATH的值为C:\ProgramData\Anaconda3\envs\side6\Library\lib\qt6\plugins
    在这里插入图片描述
  • 如果报错:
    在这里插入图片描述

解决方案

  • 将C:\ProgramData\Anaconda3\Lib\site-packages\PySide6\plugins\platforms下的的dll复制到C:\ProgramData\Anaconda3\Lib\site-packages\PySide6\plugins目录下
    在这里插入图片描述

  • 重启
    然后就可以愉快的使用pyside6了~

5、 Pycharm使用pyinstaller打包后的exe报错ImportError: DLL load failed while importing _path: 找不到指定的模块。

说明

详细报错

File "main.py", line 12, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "nicegui_init_.py", line 8, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "nicegui\ui.py", line 81, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "nicegui\elements\line_plot.py", line 3, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "nicegui\elements\pyplot.py", line 4, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "matplotlib_init_.py", line 161, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "matplotlib\rcsetup.py", line 27, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "matplotlib\colors.py", line 56, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "matplotlib\scale.py", line 22, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "matplotlib\ticker.py", line 138, in
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "matplotlib\transforms.py", line 49, in
ImportError: DLL load failed while importing _path: 找不到指定的模块。
[19164] Failed to execute script 'main' due to unhandled exception!

Debug

找到matplotlib\transforms.py指定行

from matplotlib._path import (
affine_transform, count_bboxes_overlapping_bbox, update_path_extents)

在Pycharm中双击进入
文件位于
python_stubs\-1056256661\matplotlib
python_stubs文件是一个自动生成的文件,其中包含内置函数的虚拟定义。如果未针对给定版本对内置函数进行硬编码,则PyCharm使用它来推断内置函数的类型。
根据测试,在Pycharm中运行pyinstaller时可能默认调用了python_stubs中的文件,但是封装的时候没有加进来。

解决方案

删除python_stubs\-1056256661\matplotlib文件夹或者不用Pycharm打包,直接控制台或者vscode

PS1:Pycharm中设置Pyinstaller为外部工具

在这里插入图片描述
Pyinstaller 位置:$ProjectFileDir$\venv\Scripts\pyinstaller.exe
实参:-F $FilePath$
工作目录:$FileDir$

PS2:虚拟环境中使用build.py打包nicegui项目

import os
import subprocess
from pathlib import Path
import nicegui

cmd = [
    'venv\\Scripts\\python.exe',
    '-m', 'PyInstaller',
    'main.py', # your main file with ui.run()
    '--name', 'myapp', # name of your app
    '--onefile',
    #'--windowed', # prevent console appearing, only use with ui.run(native=True, ...)
    '--add-data', f'{Path(nicegui.__file__).parent}{os.pathsep}nicegui'
]
subprocess.call(cmd)

6、coding使用Git出现:Permission denied (publickey)

说明

按照https://blog.youkuaiyun.com/weever7/article/details/124202985完成公钥配置,结果发现cmd模式下可以连接仓库,git bash命令下无法连接仓库。
在这里插入图片描述
在这里插入图片描述

解决方法1

指定其他算法
ssh-keygen -m PEM -t ed25519 -C "your.email@example.com"
测试
ssh -T git@e.coding.net

解决方法2

修改config文件,增加RSA算法支持,配置代码

Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

在这里插入图片描述

拓展阅读:

git分支管理

7、poetry使用requirements.txt报错

【powershell】Could not parse version constraint: xxxxxx;
【cmd】Could not parse version constraint: requirements.txt)
poetry官方文档:https://fig.io/manual/poetry/add,根据官网
在这里插入图片描述
对于命令

poetry add -D "$(cat requirements.txt)"

powershell命令行下可修改为

poetry add $(cat requirements.txt)

cmd命令行下可修改为

for /f "tokens=*" %i in (requirements.txt) do (poetry add %i)
在 C++ 中,`Hav` 函数并不是标准库的一部分,因此它的定义和使用通常依赖于特定的应用场景或者第三方库。如果 `Hav` 是某个项目中的自定义函数,则需要查看该项目的源码或文档以了解具体实现。 以下是关于如何定义和使用类似 `Hav` 的函数的一些通用指导: ### 自定义 `Hav` 函数的可能定义 假设 `Hav` 表示某种数学计算或其他逻辑操作,可以按照以下方式进行定义: #### 数学相关的 `Hav` 实现 如果 `Hav` 是一种数学运算(例如半正弦平方),可以用如下方式定义: ```cpp #include <cmath> double Hav(double theta) { return std::pow(std::sin(theta / 2), 2); // 半正弦平方公式 } ``` 此函数接受一个角度参数并返回其对应的哈弗森值[^4]。 #### 面向对象设计下的 `Hav` 方法 如果希望将 `Hav` 设计为类的一个方法,可以通过成员函数的方式实现: ```cpp class MathOperations { public: double Hav(double theta) const { return std::pow(std::sin(theta / 2), 2); } }; int main() { MathOperations mathOps; double result = mathOps.Hav(1.57); // 输入π/2弧度 return 0; } ``` 这种封装形式适合更复杂的上下文中调用[^5]。 ### 运算符重载与 `Hav` 虽然引用提到 C++ 支持通过 `operator` 关键字进行运算符重载[^1],但 `Hav` 并不是一个典型的运算符名称。不过,假如想让某类型支持类似于 `hav(x)` 的语法糖,也可以借助重载完成特殊行为模拟。比如下面的例子展示了如何创建一个仿函数来表现类似的特性: ```cpp struct HavFunctor { double operator()(double theta) const { return std::pow(std::sin(theta / 2), 2); } }; ``` 之后可以直接实例化该结构体并通过括号调用来执行功能: ```cpp HavFunctor havFunc; std::cout << havFunc(M_PI_2) << "\n"; // 输出近似0.25的结果 ``` 以上仅作为示范用途;实际应用需依据需求调整细节[^6]。 ### 总结 由于缺乏具体的背景资料说明 `Hav` 来源于何处以及确切含义是什么,在这里只能提供一些常规性的建议供参考。对于真正想要找到已存在的 `Hav` 函数定义而言,应该查阅相关项目的头文件(.h/.hpp),寻找声明部分,并结合其实现代码深入理解。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KmBase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值