从 python 2.7 升级到 3.7 时出现诗歌和 python 版本错误

poetry and python version errors when upgrading from python 2.7 to 3.7

我已经开始努力自学python。该项目在我的 mac 上启动,安装版本为 python 2.7。在朋友的建议下,我安装了 poetry 来做依赖处理。这非常有效。

虽然我意识到 python 2.7 已经过时并尝试升级,但不久之后。我是通过自制软件这样做的,这似乎打破了很多。 python --versoin 仍然显示 2.7,虽然我可以调用 python3 --version 并看到正确的,但即使 #!/usr/bin/env python3 位于文件顶部,我的项目似乎仍然停留在 2.7 上。更糟糕的是,执行 poetry up 不会升级我在项目中的 python 依赖项,更改 pyproject.toml 中的值会阻止一切。我有一个依赖似乎一路上已经坏掉了,但由于 poetry/python 版本混乱,我对此无能为力。错误是下面的诗。

那么从头开始,我该如何开始使用 python 的正确版本?

我的 bash_profile 有

PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH
poetry install

[EnvCommandError]                                                                           
Command ['/Users/username/Library/Caches/pypoetry/virtualenvs/PyGameEngine-py2.7/bin/python', '-'] errored with the following return code -6, and output:           
dyld: Library not loaded: @executable_path/../.Python                                                    
  Referenced from: /Users/username/Library/Caches/pypoetry/virtualenvs/PyGameEngine-py2.7/bin/python  
  Reason: image not found                                                                                
input was : import sys                                                                                   
if hasattr(sys, "real_prefix"):                                                                          
    print(sys.real_prefix)                                                                               
elif hasattr(sys, "base_prefix"):                                                                        
    print(sys.base_prefix)                                                                               
else:                                                                                                    
    print(sys.prefix)                     

正在复制我的答案


有趣的是,poetry 由于缺少该工具本身所依赖的软件包并继续安装损坏的 venv 而悄无声息地失败了。修复方法如下。

sudo apt install python3-venv
poetry env remove python3
poetry install

我不得不删除 pytest,然后使用 poetry add pytest 重新安装。

编辑:当我将项目从 python3.7 升级到 python3.8 时,我 运行 再次陷入这个问题 - 为此而不是安装 python3-venv,你想要安装 python3.8-venv 而不是


如果您仍然遇到问题(即将您的软件包升级为 python3 兼容,您可能需要查看