python - “哪个”无法找到使用 pip (WSL) 安装的软件包
问题描述
我试图开始在 WSL 中编写 Python,但整个体验非常混乱。要安装软件包,我知道我想使用 pip3,但是任何 pip3 命令都会导致
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
我的解决方法是使用以下命令进行安装,该命令有效:
python3 -mpip install --user somePackageName
我现在真正的困惑来自该which
命令未找到上述命令安装的软件包这一事实。但是,我知道当我运行“python3 -mpip freeze”时它们就在那里。这是因为它们是本地安装的吗?
(另外,如果有人在 WSL 中使用 Python 和 pip 并且可以权衡如何配置我的 Python 环境,以避免这些类型的问题,那将非常有帮助。)
谢谢!
解决方案
尝试:python -m site
(也许替换python
为python3
等)
您应该使用以下块获得简短的输出,
从 Windows:
sys.path = [
'<your current working directory>',
'C:\\Python38a2\\python38.zip',
'C:\\Python38a2\\DLLs',
'C:\\Python38a2\\lib',
'C:\\Python38a2',
'C:\\Python38a2\\lib\\site-packages',
]
来自 WSL:
sys.path = [
'<your current working directory>',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/home/<username>/.local/lib/python3.7/site-packages',
'/usr/local/lib/python3.7/dist-packages',
'/usr/lib/python3/dist-packages',
]
这就是您要查找已安装软件包的地方。
这里的顺序是导入优先级(较早的条目“胜过”后面的条目)
对于pip install
ed 包,您通常需要查看site-packages
目录。
对于<package manager> install
ed 包,您通常需要在dist-packages
目录中查找。
最后,which
通常用于在您的环境变量中查找可执行文件$PATH
(并且,至少对我而言,要求它们设置了可执行位以显示在结果中)。
在这里,您正在寻找可以由 Python 导入的不同的模块或包。换句话说,您的$PYTHONPATH
.
这是两种不同类型的“路径”。
在您的解释器中,$PYTHONPATH
映射到sys.path
和$PATH
映射到os.environ['PATH']
.
推荐阅读
- sharepoint - SharePoint Designer 工作流错误:令牌服务返回错误类型为“unauthorized_client”,描述如下:
- python - 将字符串设为每年四等分的日期
- actions-on-google - Google 上的操作-个性测验-数据库更新失败错误
- java - 无法导入 springframework.security.extensions 并找到 saml() 方法
- elasticsearch - 弹性搜索如何处理并行索引刷新请求?
- google-cloud-platform - Dialogflow webhook 设置参数值
- transactions - xdmp:invoke-function 中的多语句对使用的分号给出错误
- ios - swift - UITableViewCells 和 SDWebImage 的问题
- reactjs - 点击搜索按钮后导航栏消失
- git - 无法推送到 github 中的空仓库