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

Linux下Python安装cryptography成功却无法导入的问题

问题描述

Linux环境下,Python 3.10.6(路径/usr/bin/python)搭配pip 22.3.1,安装cryptography时日志显示成功,但执行python -c "import cryptography"报错ModuleNotFoundError: No module named 'cryptography'。即使使用python3.10 -m pip install cryptography重新安装,仍无法导入。安装时出现Defaulting to user installation because normal site-packages is not writeable警告,执行python -m pip show cryptography提示未找到包。

问题根源

安装时的警告说明:由于系统级site-packages目录无写入权限,pip将包安装到了用户级site-packages目录,但当前Python解释器的模块搜索路径sys.path未包含该目录,导致无法找到已安装的cryptography。

解决步骤

1. 定位用户级site-packages路径

执行以下命令,获取pip安装用户级包的目录:

python3.10 -m site --user-site

输出示例:/home/your-user/.local/lib/python3.10/site-packages

2. 验证包是否真的安装

检查该目录下是否存在cryptography:

ls $(python3.10 -m site --user-site)/cryptography

若输出目录内容,说明包已成功安装,仅需让Python识别该路径即可。

3. 让Python识别用户级路径

临时生效方案(单次会话)

运行Python时通过环境变量指定路径:

PYTHONPATH=$(python3.10 -m site --user-site) python -c "import cryptography; print('导入成功')"

永久生效方案

方案A:修改shell配置文件

编辑~/.bashrc(若使用zsh则编辑~/.zshrc):

echo "export PYTHONPATH=$(python3.10 -m site --user-site):\$PYTHONPATH" >> ~/.bashrc

生效配置:

source ~/.bashrc

之后重新打开终端,即可正常导入cryptography。

方案B:创建Python用户配置文件

在用户级site-packages目录的上级(通常是~/.local/lib/python3.10)创建usercustomize.py文件:

echo "import sys; sys.path.append('$(python3.10 -m site --user-site)')" > ~/.local/lib/python3.10/usercustomize.py

Python启动时会自动加载该文件,添加路径到sys.path。

4. 备选方案:系统级安装(需sudo权限)

如果有管理员权限,直接安装到系统级site-packages,避免路径问题:

sudo python3.10 -m pip install cryptography

安装后无需额外配置,即可直接导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:55:30