[英]Python scripts don't work without python -m
我非常抱歉问这个问题,但我完全无能为力
我刚刚迁移到 Mac,通过 brew 设置了 python,一切正常,除了我无法打开 Jupyter 笔记本或访问 pip,没有
python3 -m pip
或者
python3 -m jupyterlab
命令
这在我之前从未在 Linux 或 Windows 上发生过,我什至仔细检查了我的路径以确保包含 python 目录。 只是我必须创建一个别名,还是我在这里遗漏了其他东西?
结果是什么
echo $PATH
是 pip 和 jupyterlab 脚本存储在该 PATH 中的目录
如果
which pip
或者
which jupyterlab
以空结果返回,那么可能就是这种情况。 如果您使用--user
开关安装任何带有 pip (或 python3 -m pip)的东西,那么这几乎总是原因。 在 OSX 上,我认为默认用户位置是~/Libraries/bin
或/Library/python3.8/site-packages
,在 Linux 上它始终是~/.local/bin
或~/.local/python3.8/site-packages
,所以你可能需要翻找一下才能找到它们。
显然更改 python 版本以适合您的情况。
如果您已经完整地安装了软件包(例如,您没有意外删除 bin 目录),您总是可以通过执行以下操作找到PATH
环境变量中缺少的二进制路径。 跑
python3 -m pip show -f jupyterlab
这将 output 属于已安装的 package jupyterlab
的文件列表。
现在 go 通过文件列表查找您丢失的可执行文件。 以jupyter-lab
为例:
$ python -m pip show -f jupyterlab
Name: jupyterlab
...
Files:
../../../bin/jupyter-lab
...
注意相对路径。 现在在Location
行中找到路径:
$ python -m pip show -f jupyterlab
Name: jupyterlab
...
Location: /tmp/myenv/lib/python3.8/site-packages
...
根据位置解析可执行文件的路径以获得绝对路径:
$ readlink -f /tmp/myenv/lib/python3.8/site-packages/../../../bin/jupyter-lab
/tmp/myenv/bin/jupyter-lab
这是您的可执行文件的路径。 调用它应该可以工作:
$ /tmp/myenv/bin/jupyter-lab -V
2.1.3
现在将可执行文件的父目录添加到PATH
并检查是否找到了jupyter-lab
:
$ export PATH=$PATH:$(dirname /tmp/myenv/bin/jupyter-lab)
$ jupyter-lab -V
2.1.3
一旦它工作,您可以将PATH
更改持久保存到您的 shell 配置文件(例如,最近 MacOS 上zsh
的~/.zprofile
)。
这种方法与操作系统无关,并且在 MacOS、Linux 或 Windows 上同样有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.