Har*_*oli 2 python python-poetry ubuntu-20.04
我刚刚使用以下安装脚本安装了诗歌
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3
Run Code Online (Sandbox Code Playgroud)
但是,当我执行诗歌时,它失败并出现以下错误
$ poetry
/usr/bin/env: ‘python’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我最近升级到 ubuntu 20.04,这是升级的问题还是诗歌的问题?
对于 Mac 用户
运行这个:
ls -l /usr/local/bin/python*
Run Code Online (Sandbox Code Playgroud)
你应该得到这样的东西:
lrwxr-xr-x 1 irfan admin 34 Nov 11 16:32 /usr/local/bin/python3 -> ../Cellar/python/3.7.5/bin/python3
lrwxr-xr-x 1 irfan admin 41 Nov 11 16:32 /usr/local/bin/python3-config -> ../Cellar/python/3.7.5/bin/python3-config
lrwxr-xr-x 1 irfan admin 36 Nov 11 16:32 /usr/local/bin/python3.7 -> ../Cellar/python/3.7.5/bin/python3.7
lrwxr-xr-x 1 irfan admin 43 Nov 11 16:32 /usr/local/bin/python3.7-config -> ../Cellar/python/3.7.5/bin/python3.7-config
lrwxr-xr-x 1 irfan admin 37 Nov 11 16:32 /usr/local/bin/python3.7m -> ../Cellar/python/3.7.5/bin/python3.7m
lrwxr-xr-x 1 irfan admin 44 Nov 11 16:32 /usr/local/bin/python3.7m-config -> ../Cellar/python/3.7.5/bin/python3.7m-config
Run Code Online (Sandbox Code Playgroud)
将默认的 python 符号链接更改为您要从上面使用的版本。注意,我们只需要选择以python3.*结尾的即可。请避免使用以 config 或 python3.*m 或 python3.*m-config 结尾的内容。
运行这个:
ln -s -f /usr/local/bin/python3.7 /usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)
检查它是否正常工作:
python --version # Should output Python 3.7.5
Run Code Online (Sandbox Code Playgroud)
python除非另有说明,否则诗歌取决于任何东西,并且不会尝试使用特定版本的python。
上述问题将存在于 20.04 以后的 ubuntu 系统上,因为不推荐使用 python2.7 并且该python命令未映射到 python3.x
你会发现为 python 指定一个别名到 python3 是行不通的(除非你在你的 bashrc 而不是任何其他 shell 运行命令文件中指定这个),因为诗歌旋转它自己的 shell 来执行命令。
改为安装以下软件包
sudo apt install python-is-python3
Run Code Online (Sandbox Code Playgroud)
应该注意的是,如果您愿意,您可以安装 python2.7,并且诗歌应该可以正常运行。
还有一些其他 Ubuntu 版本/变体的问题(此处为 Mint 19.3)。
答案python-is-python3是arshbot一个很好的选择,或者我发现只需调整调用诗歌的脚本就可以为我修复它:一种更微妙的方法,但也更脆弱,以防脚本将来更新(因此被覆盖)。所以无论如何,这是轻量级/脆弱的选项:
编辑脚本,
vi ~/.poetry/bin/poetry
Run Code Online (Sandbox Code Playgroud)
(其他编辑器可用等)并更改顶行:
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
变成
#!/usr/bin/env python3
Run Code Online (Sandbox Code Playgroud)
已排序!
考虑到 的评论,这可能只是作为临时解决方法需要finswimmer,从该评论看来,未来在这种情况下,诗歌将更加明智地使用 python3。