标签: python-poetry

诗歌脚本:未找到文件/文件夹

我目前正在使用 FastAPI 构建后端,并且在使用诗歌脚本运行后端时遇到一些问题。这是我的项目结构:

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 backend\n  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 asgi.py\n  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Dockerfile\n  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 poetry.lock\n  \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n
Run Code Online (Sandbox Code Playgroud)\n

pyproject.toml

\n
[tool.poetry]\nname = "backend"\nversion = "0.1.0"\ndescription = ""\nauthors = ["Pierre-Alexandre35 <46579114+pamousset75@users.noreply.github.com>"]\nreadme = "README.md"\n\n[tool.poetry.dependencies]\npython = "^3.9"\nuvicorn = "^0.17.6"\nfastapi = "^0.78.0"\npsycopg2 = "^2.9.3"\njwt = "^1.3.1"\npython-multipart = "^0.0.5"\n\n\n[build-system]\nrequires = ["poetry-core"]\nbuild-backend = "poetry.core.masonry.api"\n\n[tool.poetry.scripts]\nfoo='asgi:__main__'\n
Run Code Online (Sandbox Code Playgroud)\n

如果我正在运行 poetry run python asgi.py,它工作得很好,但如果我使用poetry foo脚本,我会得到No file/folder found for package backend。这些都是我尝试过的组合,每个组合都有相同的错误poetry run foo

\n
foo='asgi:main'\nfoo='backend.asgi:__main__'\nfoo='backend.asgi:main'\nfoo='backend.asgi:.'\n
Run Code Online (Sandbox Code Playgroud)\n

python-poetry fastapi

2
推荐指数
1
解决办法
4681
查看次数

Poetry 如何将项目与其虚拟环境关联起来?

Poetry 如何将项目与其虚拟环境关联起来~/.cache/pypoetry/virtualenvs?我在项目内找不到任何链接,例如grep -ie NKJBdMnE .什么也不返回。

poetry env info

Virtualenv
Python:         3.10.11
Implementation: CPython
Path:           /home/lddpro/.cache/pypoetry/virtualenvs/lxxo-NKJBdMnE-py3.10
Executable:     /home/lddpro/.cache/pypoetry/virtualenvs/lxxo-NKJBdMnE-py3.10/bin/python
Valid:          True

System
Platform:   linux
OS:         posix
Python:     3.10.11
Path:       /var/lang
Executable: /var/lang/bin/python3.10
Run Code Online (Sandbox Code Playgroud)

poetry config --list

[lddpro@0a0aecf400ca lddpro-bff]$ poetry config --list
cache-dir = "/home/lddpro/.cache/pypoetry"
experimental.new-installer = true
experimental.system-git-client = false
installer.max-workers = null
installer.no-binary = null
installer.parallel = true
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false …
Run Code Online (Sandbox Code Playgroud)

python python-poetry

2
推荐指数
1
解决办法
436
查看次数

python[poetry] 安装陷入困境

在此输入图像描述

我正在使用以下curl命令来安装诗歌

 curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
Run Code Online (Sandbox Code Playgroud)

但诗歌陷入困境,如图所示。有什么帮助吗?

python-poetry

1
推荐指数
1
解决办法
8954
查看次数

vscode 找不到带有诗歌和 wsl 的 python

我想在 vscode 槽 WSL 中使用由诗歌“创建”的 python interperter,但正确的 python 版本没有出现在 vscode 中。

我在 WSL 终端中运行以下命令:

$ poetry shell
Spawning shell within /home/kwint/.cache/pypoetry/virtualenvs/metal-hub-python-py3.7
$ code .
Run Code Online (Sandbox Code Playgroud)

在 vscode 中发现的唯一互操作者是/usr/. 我试过手动输入 virtualenv 的路径,但没有运气。这是路径which python返回:/home/kwint/.cache/pypoetry/virtualenvs/metal-hub-python-py3.7/bin/python

python visual-studio-code python-poetry

1
推荐指数
1
解决办法
1571
查看次数

找到正确版本的 python/sklearn 以在 pyenv 中使用机器学习模型

我在 Kaggle 上腌制了一个模型,并尝试下载它在本地运行。我使用诗歌和 pyenv 运行以下命令来创建项目:

pyenv local 3.6.6    
poetry new model_api
cd model_test
poetry env use python
poetry add "sklearn>=0.21.3"
Run Code Online (Sandbox Code Playgroud)

但收到以下错误。

在此输入图像描述

如果我只是使用 sklearn 并将其与诗歌一起安装,那么在 VS Code 中执行代码时会出现此错误。

/bin/python /home/gary/Documents/model_api/model_api/app.py
Traceback (most recent call last):
  File "/home/gary/Documents/model_api/model_api/app.py", line 5, in <module>
    model = pickle.load(f)
ModuleNotFoundError: No module named 'sklearn.ensemble.forest'
Run Code Online (Sandbox Code Playgroud)

这是我尝试运行的代码。

import sklearn 
import pickle

f = open('./model/ForestModel','rb')
model = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)

根据我在 Kaggle 上看到的内容,我尝试使用 Python 3.6.6 和 sklearn 0.21.3: 在此输入图像描述

如果我尝试使用更新版本的 Python(例如 3.8.10),我会收到相同的错误。我想我错过了一些简单/明显的东西。任何我可以检查的指示或事情将不胜感激。

pickle scikit-learn pyenv python-poetry

1
推荐指数
1
解决办法
4872
查看次数

Dockerfile 多阶段 Python Poetry - 安装

我正在尝试 dockerize 一个简单的脚本(命令行实用程序)。这是一个有效的Dockerfile:

FROM python:3.9-slim

ARG user=tweaker project=tex-tweak src=tex_tweak

# Non-root user.
RUN useradd -ms /bin/bash "$user"
USER $user
WORKDIR /home/$user
ENV PATH=/home/$user/.local/bin:$PATH

# Source and project files.
RUN mkdir /home/$user/$project
WORKDIR /home/$user/$project
COPY $src ./$src/
COPY pyproject.toml ./
#COPY poetry.lock ./

# Build.
RUN pip install poetry --user && \
    poetry config virtualenvs.create false && \
    poetry install --no-dev && \
    poetry build

CMD ["bash"]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这已经足够了:目标实用程序以某种方式安装到.local/bin; 我不明白为什么。

python:slim图片大小为115MB;生成的图像为 174MB。不是不可接受,而是比较臃肿。你认为多阶段构建是有序的。不幸的是,我不知道应该如何将要点转移到第二阶段。.local/bin选择性复制和的想法.local/lib看起来并不特别安全或有吸引力。或者也许这就是方法?

或者是否有可能/建议 …

python dockerfile python-poetry

1
推荐指数
1
解决办法
7002
查看次数

如何使使用 Poetry 安装的软件包在 Docker 中可访问?

我有一个 Django REST 框架 API,我试图在 Docker 中运行它。该项目使用 Poetry 1.1.12。运行时,我可以看到 Poetry 已正确安装,并且 Poetry 安装了 my 中的包pyproject.toml,包括 Django。我正在使用 Supervisor 来使用 Daphne 运行 API,以及执行一些其他任务(例如收集静态文件)。

但是,当主管运行该应用程序时,我得到:

Traceback (most recent call last):
  File "/home/docker/api/manage.py", line 22, in <module>
    main()
  File "/home/docker/api/manage.py", line 13, in main
    raise ImportError(
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
Traceback (most recent call last):
  File "/home/docker/api/manage.py", line 11, in main
    from …
Run Code Online (Sandbox Code Playgroud)

django docker dockerfile virtual-environment python-poetry

1
推荐指数
1
解决办法
5109
查看次数

将一个条目添加到requirements.txt,其中包含哈希值

我习惯于看到requirements.txt有库可选地具有关联的[最低]版本。

pandas==1.0.4
Run Code Online (Sandbox Code Playgroud)

在我现在正在处理的现有项目中,我们有这样的库条目:

argcomplete==1.12.3 \
    --hash=sha256:291f0beca7fd49ce285d2f10e4c1c77e9460cf823eef2de54df0c0fec88b0d81 \
    --hash=sha256:2c7dbffd8c045ea534921e63b0be6fe65e88599990d8dc408ac8c542b72a5445
asgiref==3.4.1; python_version >= "3.6" \
    --hash=sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214 \
    --hash=sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9
certifi==2021.5.30; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" \
    --hash=sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8 \
    --hash=sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee
cffi==1.14.6; python_version >= "3.6" \
    --hash=sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c \
    --hash=sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99 \
    --hash=sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819 \
    --hash=sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20 \
Run Code Online (Sandbox Code Playgroud)

该项目确实使用poetry- 哪个可能是文件的生成器?它是如何生成这个文件的以及如何添加我的新依赖项 - 这是pytest 7.0.0

requirements.txt python-poetry

1
推荐指数
1
解决办法
4884
查看次数

Poetry 未在 venv 中安装软件包

我是诗歌新手,我有一个问题,在网上找不到太多有关信息。我的诗歌应该创建一个 python 3.9 的虚拟环境,它做到了。这是我从命令中得到的poetry env info

Virtualenv
Python:         3.9.10
Implementation: CPython
Path:           /home/..../.venv
Valid:          True

System
Platform: linux
OS:       posix
Python:   /usr
Run Code Online (Sandbox Code Playgroud)

当我输入poetry shellthen时python,我确实进入了 python 3.9,并且能够导入已安装的软件包。但这是奇怪的部分。当我尝试检查已安装的软件包之一时,我得到的结果如下:

>>> import XXX.python_utils as utils
>>> utils
<module 'XXX.python_utils' from '/home/X/.local/lib/python3.9/site-packages/XXX/python_utils/__init__.py'>
Run Code Online (Sandbox Code Playgroud)

我的机器上确实安装了实际的 python 3.9,但 Poetry 应该在 virtualenv 中安装该包,而不是实际的 python3.9 site_packages,对吗?然后我尝试在我的机器上安装 python 3.9 而不是虚拟环境,包仍然可以导入。结果与上面相同。

然后我仔细检查了里面的东西.venv/lib/python3.9/site-packages,里面基本上什么都没有。我发现的是一些带有包名称并以.dist-info. 我不确定那是什么。

我也尝试which pythonpoetry shell,这就是我得到的:

(.venv) XXX@XXX:~/XXX$ which python
/home/.../.venv/bin/python
Run Code Online (Sandbox Code Playgroud)

看来诗歌确实在 venv 中使用了 python 3.9

最后,每次我运行 a …

python virtualenv python-3.x python-poetry

1
推荐指数
1
解决办法
1万
查看次数

PyCharm 中缺少解释器选项诗歌

我在 Mac 和 Windows 计算机上都安装了 Poetry,并且在两台计算机上使用它都没有出现问题。然而,两台机器上的 PyCharm 都未能将诗歌列为解释器选项。我需要做什么才能让诗歌出现在 PyCharm 中?现在已经正式支持了,所以我想我错过了一些东西?

PyCharm 上 Poetry 的 Jetbrains 官方文档

Windows 示例 在此输入图像描述

操作系统示例 在此输入图像描述

pycharm python-poetry

1
推荐指数
1
解决办法
1901
查看次数