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

VSCode虚拟环境下自定义模块导入报错:AttributeError/ImportError

问题排查与解决方案

1. 检查自定义脚本的函数定义

确认你的crypto.py里的encrypt函数是全局定义的——别把它放在if __name__ == "__main__":代码块里,这个块内的代码只有直接运行crypto.py时才会执行,外部导入时无法访问。同时核对函数名拼写是否和调用时完全一致(大小写、下划线都不能出错)。

2. 避免与第三方库重名

Python生态里有个常用加密库pycryptodome(旧版为pycrypto),如果你的虚拟环境中安装了这个库,Python导入时会优先加载系统/虚拟环境内的官方crypto模块,而非你自己写的同目录脚本。解决办法:把你的crypto.py改个名字,比如my_crypto.py,再用import my_crypto或from my_crypto import encrypt导入。

3. 确认运行时的工作目录

有时候IDE或终端的工作目录并非脚本所在的C:\Users\nano\virtual,导致Python找不到同目录模块。可以在主脚本开头加代码验证:

import os
print(os.getcwd())

如果输出不是目标路径,要么手动切换工作目录到C:\Users\nano\virtual,要么在主脚本临时添加路径:

import sys
sys.path.insert(0, "C:\\Users\\nano\\virtual")

4. 检查虚拟环境的包冲突

在虚拟环境的终端执行以下命令,查看是否安装了同名加密库:

pip list | findstr crypto

如果看到pycrypto、cryptography这类结果,要么卸载该包(pip uninstall pycrypto),要么重命名自己的脚本。

5. 清除Python缓存文件

Python会生成.pyc缓存文件,有时缓存会导致导入异常。找到脚本目录下的__pycache__文件夹,删除里面所有文件后重新运行主脚本。

内容的提问来源于stack exchange,提问作者GrozniV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:54:27