windows11 下安装 miniconda 疑难问题解析
1. 问题发生背景(每次搞windows的python环境都很恶心):
当我们安装miniconda后,如果默认将miniconda的目录安装在了C盘默认路径,就会在conda create的时候,在C盘里创建目录,这个目录貌似是缺少什么权限的,在pycharm中使用时,会导致import _ssl的报错,如下图,该问题如果按下面的操作步骤将,python环境放在D盘,并且把D盘里的envs文件夹的当前用户的权限设为所有权限允许,就OK了。
配置方式如下,这种方式比直接用conda的环境来处理更高级,共用不同的python 版本解释器,又能将包按project进行划分,非常推荐
Traceback (most recent call last):
File "C:/Program Files/JetBrains/PyCharm2023/plugins/python/helpers/pydev/pydevconsole.py", line 5, in <module>
from _pydev_comm.pydev_rpc import make_rpc_client, start_rpc_server, start_rpc_server_and_make_client
File "C:\Program Files\JetBrains\PyCharm2023\plugins\python\helpers\pydev\_pydev_comm\pydev_rpc.py", line 4, in <module>
from _pydev_comm.pydev_server import TSingleThreadedServer
File "C:\Program Files\JetBrains\PyCharm2023\plugins\python\helpers\pydev\_pydev_comm\pydev_server.py", line 4, in <module>
from _shaded_thriftpy.server import TServer
File "C:\Program Files\JetBrains\PyCharm2023\plugins\python\helpers\third_party\thriftpy\_shaded_thriftpy\server.py", line 9, in <module>
from _shaded_thriftpy.transport import (
File "C:\Program Files\JetBrains\PyCharm2023\plugins\python\helpers\third_party\thriftpy\_shaded_thriftpy\transport\__init__.py", line 9, in <module>
from .sslsocket import TSSLSocket, TSSLServerSocket
File "C:\Program Files\JetBrains\PyCharm2023\plugins\python\helpers\third_party\thriftpy\_shaded_thriftpy\transport\sslsocket.py", line 7, in <module>
import ssl
File "C:\Users\senzo\.conda\envs\python38\lib\ssl.py", line 98, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: DLL load failed while importing _ssl: 找不到指定的模块。
Couldn't connect to console process.
1. 如果选择个人用户,会默认安装到ProgramData目录下,好像没啥大问题,但是如果选择所有用户(我真是多此一举,以后所有软件都Just me就对了),则env 总是会默认安装到 C:\Users\senzo\.conda\envs 很恶心,即使你在C:\Users\senzo\ 目录下创建了 .condarc 文件
【Anaconda3】关于conda环境的安装路径问题 | 为什么conda环境默认在C盘_anaconda配置环境老是在c盘-CSDN博客
.condarc 文件内部截图
配置了路径,仍然还是会安装到 C:\Users\senzo\.conda\envs 有大佬说改指定目录envs的权限,如下图
将当i前用户的所有权限都勾选上
这样设置完了之后,就可以安装到指定路径下去了
terminal 如果配置为 powershell 的话,两者表现差异很大,尤其对于conda的处理方式,pycharm可以直接使用conda切换环境
webstorm的terminal没有变化,甚至不如直接使用powershell,有时候powershell直接打开后,conda命令可以直接用,但是在webstorm的terminal就保找不到该命令
处理办法就是将miniconda的bin目录添加到环境变量,我是偷懒直接把用户变量和系统变量都填了,如果不知道你的conda路径,你可以whereis conda,powershell就会显示conda的路径了,是个以.bat结尾的,不是.exe结尾的,这个要注意区分,因为使用mac电脑编写,不方便截图(后补)
最重要的是重启电脑.... 注销也行,否则webstorm重启多少次还都是显示conda指令找不到,可能windows有source /etc/profile 这种,但是我没有花心思去找,直接重启来得更快,大家可以去解决,欢迎留评贴链接
pycharm 底层应该是做了处理,使得terminal下可以支持conda activate py27 这个真是让我惊呆了,如果不是自己平常也用python,真想不到还有这招...
我是在构建franz碰得坑,目前franz还没运行起来,执行命令
franz 这套代码有点坑,无论是windows还是mac都运行不起来,大家没有相当的技术底蕴就不要尝试了,能解决的大佬可以给我留个言
npx lerna bootstrap 会报错,提示node-gyp 运行时,报得是c语言的错,到官网去看了看,官网node-gyp版本比给的高,当下运行的是node-gyp@3.8.0,最新是9.3.1,支持python3,感觉应该是哪里需要调整,把版本升起来就能搞定了,这里暂且记录一下
处理方式?
我的方式就是跑到pycharm的开发器下,用pycharm的terminal来处理webstorm的代码,感觉这样最简单,懒得去解决这些底层问题,又毫无意义,但凡这些文档能写得详细一点,也不会浪费这些时间
为何会写记录这篇内容?
electron 打包编译的过程中,会牵涉到python脚本的运行和使用,平时基本不会遇见;
windows下conda create -n py27 python=2.7时会报错,然后输出一堆环境变量,这个竟然跟开proxy 有关,只要关闭proxy即可,mac下没有此问题
conda activate python38 报错,找不到activate命令
conda init 然后再重开cmd,再输入从打activate python38就OK了
conda init
是用来配置你的 shell(比如说 Bash 或者 Zsh)以便于使用 Anaconda 或者 Miniconda 创建的 Python 环境和包管理器。它会修改你的 shell 配置文件(比如 .bashrc
或者 .zshrc
)来设置环境变量和路径,使得你可以轻松地使用 conda 命令管理你的 Python 环境和安装的包。这个命令一般在安装 Anaconda 或者 Miniconda 后执行,以确保 conda 命令可以在你的 shell 中正常工作。
另外就是打开specify protocol 开关,specify protocol 开关的意义是
从网上说,可以自行设置https_proxy 和 http_proxy 来改变控制台,这个没试,conda国内就可以用,直接关闭 proxy 即可
windows11系统上,如果采用 `conda create --name python38 python=3.8`的方式,创建python38环境,同时用这个环境在pycharm中追加
(venv) D:\pycharmProjects\whatsapp-desktop-api>pip3 install -r requirements.txt
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/aiofiles/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/aiofiles/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/aiofiles/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/aiofiles/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/aiofiles/
以上错误只是镜像的域名要添加到信任里面,其他方式都不好使,主要在于--trusted-host xxx 这个参数,这里我用的阿里云镜像,mac机器没有这个问题
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pycharm 的terminal如果换成powershell不能自动切换为venv的环境
而cmd.exe 可以,cmd.exe的支持最好
git bash.exe 窗口也可以自动切,但是没有venv的标识,不好区分,但是颜色提示,也挺好