我制作了涉及pycryptodome个库的 playbook .一段时间前(比如3天前)它工作得很好,但现在当我try 运行它时,我得到这个错误:

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'

我已经try 过了:重新设置模块,安装不同版本的模块(3.19),使用pythonpython3命令从shell运行脚本,清除pip的缓存.什么都不起作用!

如果您能帮助我解决这个问题,我将非常感激.我需要这个模块正常工作.

这是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)

(加密器和解密器目前还没有使用,但将来会使用)

  • 我的Python版本:3.11.6
  • PyCryptoDome版本:3.20
  • 操作系统 : Windows 11
  • 代码编辑器:VSCode
  • 目录树:
 passwords
 ├─── encrypt.py
 ├─── decrypt.py
 ├─── main.py
  • 100输出:
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

推荐答案

问题核心

事实证明,我的电脑上有两个口译员.本地和全球(至少VSCode中是这样称呼的).通过本地解释器运行代码会引发此错误,尽管从全局解释器运行代码时不会引起任何问题.

情况

我将VSCode设置为仅与Global一起使用,因为当我在本地使用时,它会在代码内部(甚至在运行之前)向我显示没有加密模块,尽管我已经判断了它是否已安装.切换到Global解释器后,它工作得很好,直到我不需要通过VSCode调试器运行它,而是通过Shell使用python命令运行它.然后(我猜)它不断使用本地解释器导致了这个错误.

溶液

我只是判断了这个标记为Local的解释器的路径(它是C:\msys64\mingw64\bin),然后删除了所有与Python相关的文件.它有效,而且我没有看到任何并发症.希望这对其他人有帮助

Python相关问答推荐

将HLS纳入媒体包

时间序列分解

. str.替换pandas.series的方法未按预期工作

2D空间中的反旋算法

实现自定义QWidgets作为QTimeEdit的弹出窗口

Plotly Dash Creating Interactive Graph下拉列表

需要帮助重新调整python fill_between与数据点

网格基于1.Y轴与2.x轴显示在matplotlib中

ConversationalRetrivalChain引发键错误

从列表中获取n个元素,其中list [i][0]== value''

在Python中从嵌套的for循环中获取插值

为什么Python内存中的列表大小与文档不匹配?

处理Gekko的非最优解

如何反转一个框架中列的值?

如何获取包含`try`外部堆栈的`__traceback__`属性的异常

如何为需要初始化的具体类实现依赖反转和接口分离?

pytest、xdist和共享生成的文件依赖项

用0填充没有覆盖范围的垃圾箱

仅取消堆叠最后三列

在聚合中使用python-polars时如何计算模式