Windows11+Python3.11.6下ModuleNotFoundError: No module named 'Crypto'求助
ModuleNotFoundError: No module named 'Crypto' 问题排查与解决
问题详情
3天前正常运行的脚本,现在执行时抛出以下错误:
Traceback (most recent call last): File "C:\0002_Programowanie\0001_MAIN\0000_APP\lockify\src\app\passwords\main.py", line 2, in <module> from encrypt import Encrypter File "C:\0002_Programowanie\0001_MAIN\0000_APP\lockify\src\app\passwords\encrypt.py", line 1, in <module> from Crypto.Cipher import AES ModuleNotFoundError: No module named 'Crypto'
已尝试的操作:
- 重装pycryptodome模块
- 安装3.19版本的pycryptodome
- 使用python/python3命令执行脚本
- 清理pip缓存
环境信息
- Python版本:3.11.6
- PyCryptoDome版本:3.20
- 操作系统:Windows11
- 代码编辑器:VSCode
- 目录结构:
passwords ├─── encrypt.py ├─── decrypt.py ├─── main.py
相关代码
main.py:
import argparse from encrypt import Encrypter from decrypt import Decrypter parser = argparse.ArgumentParser() parser.add_argument("-t", "--text", type=str, required=True, default=None, help="Text to encrypt or decrypt") parser.add_argument("-p", "--password", type=str, required=True, help="Password to use for encryption/decryption") parser.add_argument("-o", "--operation", type=str, choices=["encrypt", "decrypt"], required=True, help="Operation to perform (encrypt or decrypt)") args = parser.parse_args() print(args)
pip已安装包列表
Package Version ------------------------- --------- altgraph 0.17.3 bcrypt 4.0.1 blinker 1.6.3 certifi 2023.7.22 chardet 5.2.0 charset-normalizer 3.2.0 click 8.1.7 colorama 0.4.6 customtkinter 5.2.0 darkdetect 0.8.0 decorator 4.4.2 EasyProcess 1.1 enigmacrypt 0.0.8 entrypoint2 1.1 Flask 3.0.0 Flask-Login 0.6.3 Flask-SQLAlchemy 3.1.1 greenlet 3.0.1 idna 3.4 imageio 2.31.5 imageio-ffmpeg 0.4.9 itsdangerous 2.1.2 Jinja2 3.1.2 loguru 0.6.0 MarkupSafe 2.1.3 MouseInfo 0.1.3 moviepy 1.0.3 mss 9.0.1 Naked 0.1.32 natsort 8.4.0 notify-py 0.3.42 numpy 1.25.2 opencv-python 4.8.0.74 pefile 2023.2.7 Pillow 10.0.0 pip 24.0 plyer 2.1.0 proglog 0.1.10 PyAutoGUI 0.9.54 pycryptodome 3.20.0 pycryptodome-test-vectors 1.0.13 PyGetWindow 0.0.9 pyinstaller 5.13.0 pyinstaller-hooks-contrib 2023.6 PyMsgBox 1.0.9 pynotify 0.1.1 pyperclip 1.8.2 PyQt5 5.15.10 PyQt5-Qt5 5.15.2 PyQt5-sip 12.13.0 PyRect 0.2.0 pyscreenrec 0.4 pyscreenshot 3.1 PyScreeze 0.1.29 pytweening 1.0.7 pywin32-ctypes 0.2.2 PyYAML 6.0.1 qt-material 2.14 requests 2.31.0 setuptools 69.0.0 shellescape 3.8.1 SQLAlchemy 2.0.22 tqdm 4.66.1 ttkbootstrap 1.10.1 typing_extensions 4.7.1 urllib3 2.0.4 Werkzeug 3.0.1 wheel 0.43.0 win32-setctime 1.1.0
解决方案
1. 对齐Python解释器与pip环境
Windows下多版本Python共存易导致环境不匹配,执行以下命令校验:
- 查看当前运行脚本的Python路径:
where python - 查看pip绑定的Python路径:
pip -V
如果路径不一致,用对应Python的pip重新安装:
python -m pip install --force-reinstall pycryptodome
(将python替换为你实际使用的解释器命令,比如python3.11)
2. 确认虚拟环境激活状态
如果项目使用了虚拟环境,必须先激活再操作:
- CMD中激活:
.\venv\Scripts\activate - PowerShell中激活:
venv\Scripts\Activate.ps1
激活后重新安装pycryptodome:
pip install --force-reinstall pycryptodome
3. 手动验证模块文件存在性
执行以下命令获取Python的site-packages目录:
python -c "import site; print(site.getsitepackages())"
打开输出的路径,检查是否存在Crypto文件夹。如果不存在,执行强制重装命令。
4. 配置VSCode正确的解释器
在VSCode左下角状态栏点击当前Python版本,选择安装了pycryptodome的解释器。若需自定义配置,创建或修改.vscode/launch.json:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "pythonPath": "C:/Path/To/Your/Python311/python.exe" } ] }
内容的提问来源于stack exchange,提问作者Wooks10
相关产品推荐
相关产品推荐

