python - Python包版本满意,但没有出现
问题描述
当我运行命令时:
sudo pip3 install seaborn==0.11.1
我得到:
Requirement already satisfied: seaborn==0.11.1 in /usr/local/lib/python3.8/dist-packages (0.11.1)
但是,当我检查 python3 中的版本时,我得到:
$ python3
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import seaborn as sns
>>> sns.__version__
'0.10.1'
我该如何解决这个问题,我对 python 包有什么不了解的地方?
编辑:从安装命令中删除 sudo 解决了这个问题,非常感谢!
当我们谈到这个话题时:为什么安装 withsudo apt install python3-<package>
也会使软件包可用于user
,而sudo pip3 install <package>
不能?
解决方案
您正在以 root 身份安装软件包,但以用户身份运行 python3。
以用户身份安装软件包:pip3 install seaborn==0.11.1 --user
并python3
以用户身份运行。
以 root 身份安装包:pip3 install seaborn==0.11.1
并sudo python3
以 root 身份运行。
关于评论中的第二个问题
为什么使用 sudo apt install python3- 安装也会使软件包可供用户使用,而 sudo pip3 install 却没有?
apt
为所有用户安装,因为它们没有安装在特定用户的主文件夹中,而是安装在 usr 文件夹中。每个用户都将在其帐户中拥有自己的文件以保存偏好和数据,但以访客身份登录的任何用户除外,因为他们的数据在注销时会被删除。
pip3
没有为所有可用用户安装的问题可能与umask
,尝试卸载软件包pip3 uninstall seaborn
,更改 umask cd ~ && umask 022
,再次以 root 身份安装sudo pip3 install seaborn==0.11.1
umask
是一个设置文件/目录默认访问权限的命令,你可以在这里阅读更多
推荐阅读
- node.js - 获取 SQL 不同数据 Bookshelf Model
- php - 如何实现基于x分钟到xx分钟车程的地点范围的查询?
- c# - 我正在使用 System.Diagnostics.Process 运行 sqlite 特殊命令,但只有一半的命令被执行
- r - 使字符列哑化,但每行中的类别数不相等
- c# - 时区索引值
- scala - 如何将新列和相应的行特定值添加到火花数据框中?
- python - 有没有办法在python中检测和区分英语和罗马乌尔都语?
- flutter - 在颤振中检查插件/包是否已弃用 api?
- c++ - 无法创建 GLFW 窗口
- javascript - 在axios中增加maxContentLength和maxBodyLength