Ошибки поэзии и версии Python при обновлении с Python 2.7 до 3.7

Я начал обучение, чтобы научить себя питону. Проект начался на моем Mac с Python 2.7 в качестве установленной версии. По совету друга я установил поэзию для обработки зависимостей. Это сработало очень хорошо.

Вскоре я понял, насколько устаревшим был Python 2.7, и попытался обновить его. Я сделал это через доморощенный, и это, казалось, сломало много. python --versoin покажет 2.7 и хотя могу позвонить python3 --version и вижу правильный, мой проект все еще, кажется, застрял на 2.7, даже когда #!/usr/bin/env python3 находится в верхней части файлов. Что еще хуже, делая poetry up Я не буду обновлять мою зависимость от Python в проекте, и изменение этого значения в pyproject.toml все тормозит. У меня есть зависимость, которая, кажется, сломалась на этом пути, но я ничего не могу с этим поделать с разбитым беспорядком поэзии / версии на питоне. Ошибка ниже от стихов.

Итак, взяв это сверху, как мне заставить вещи начать использовать правильную версию 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)                     

0 ответов

Копирую мой ответ отсюда


Интересно, что поэзия молча терпит неудачу из-за отсутствия пакета, на который полагается сам инструмент и продолжает устанавливать сломанный 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, вы можете взглянуть на этот ответ)

Другие вопросы по тегам