You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 03:24:55