#python #python-poetry
Вопрос:
Это мой первый раз, когда я создаю стихи. Структура моего проекта выглядит следующим образом:
bert-api
bert_api
bert
__init__.py
predict.py
data
docs
tests
venv
poetry.lock
pyproject.toml
Я создал свои стихи, используя следующую команду:
curl -sSL https://raw.githubusercontent.com/python
#change python version
alias python='/usr/local/bin/python3.6'
python --version
#start a new project
poetry new bert-api
#open the project
poetry install
poetry shell
poetry env use /usr/local/bin/python3.6
теперь, чтобы бежать predict.py я иду:
(venv) (base) a10.12@MacBook-Air bert-api % poetry install
(venv) (base) a10.12@MacBook-Air bert-api % poetry run script
и это прекрасно работает:
Однако, насколько я знаю, я предполагаю использовать
poetry install
poetry shell
Spawning shell within /Users/a10.12/Library/Caches/pypoetry/virtualenvs/bert-api-w7KuvcmX-py3.6
a10.12@MacBook-Air bert-api % . /Users/a10.12/Library/Caches/pypoetry/virtualenvs/bert-api-w7KuvcmX-py3.6/bin/activate
а потом беги
poetry run script
но если я сделаю это таким образом, я получу ошибку:
ImportError: cannot import name 'VersionConstraint'
Что я делаю не так?
Мой проект pyproject.toml
[tool.poetry]
name = "bert-api"
version = "0.1.0"
description = ""
authors = [name]
[tool.poetry.dependencies]
python = "^3.6.7"
deeppavlov = "^0.15.0"
[tool.poetry.scripts]
script = "bert_api.bert.predict:main"
[tool.poetry.dev-dependencies]
pytest = "^5.2"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api
»
Ответ №1:
Мне просто нужно было указать версию python, прежде чем я сделаю установку poetry и оболочку poetry
poetry env use python3.6