问题标签 [python-poetry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 诗歌没有使用正确版本的 Python
我最近安装了 Pyenv 和 Poetry,并想创建一个新的 Python 3.8 项目。我已将python的版本global
和版本设置为使用适当的 Pyenv 命令(例如)。当我在终端中运行时,输出符合预期。local
3.8.1
pyenv global 3.8.1
pyenv version
3.8.1.
现在,问题是当我使用 Poetry ( poetry new my-project
) 创建一个新的 python 项目时,生成的pyproject.toml
文件会使用 python 2.7 创建一个项目:
似乎 Poetry 默认回到 Python 的系统版本。如何更改它以使其使用随 Pyenv 安装的版本?
编辑
我正在使用与 Python 2.7 捆绑在一起的 MacOS。我认为这可能会导致这里的一些问题。我再次使用 Pyenv 重新安装了 Python 3.8,但是当我点击时,Poetry install
我收到以下错误:
我应该使用 Pyenv 为项目显式创建环境,还是项目应该能够在运行后访问正确的 Python 版本pyenv local 3.8.1.
?当我做后者时,没有任何变化,我仍然得到同样的错误。
python - 我使用诗歌创建了一个 Python 包,我将它发布到 PyPI,但 PyPI 中缺少我的包描述
我使用诗歌创建了一个 Python 包然后我使用诗歌构建、诗歌发布将我的包发布到了 PyPI,但是 PyPI 中缺少我的包描述。
该项目托管在 GitHub 中:https ://github.com/fsistemas/sql2json 。
PyPI中的项目没有描述:https ://pypi.org/project/sql2json
python - VSCode 在选择解释器选项中不显示诗歌 virtualenvs
我需要帮助。无论我尝试什么,VSCode 都永远找不到诗歌 virtualenv 解释器。
使用官方文档$ curl
中解释的标准方法安装了诗歌 Python 包管理器。
启动了一个项目$ poetry new finance-essentials_37-64
,安装了诗歌环境$ poetry install
。
所以现在我可以看到我确实有一个虚拟环境:
并且这个 virtualenv 安装在: C:\Users\Jaepil\AppData\Local\pypoetry\Cache\virtualenvs
,它有finance-essentials-37-64-SCQrHB_N-py3.7
目录。
但是,VSCode 无法在其“选择解释器”命令中找到此虚拟环境。我只看到一堆 Anaconda 和 Pipenv 环境,但没有看到我刚刚制作的诗歌环境解释器。
我也按照此处的建议添加"python.venvPath": "~/.cache/pypoetry/virtualenvs",
了我的内容,但无济于事。还是不行。settings.json
我还尝试了绝对路径,通过添加"python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs",
相同的设置,但它也不起作用。
VSCode 设置参考声明它具有python.poetryPath
默认设置,但它似乎也不起作用。"poetry"
在这种情况下我应该更改默认值吗?
python.poetryPath
“诗歌”
指定 Poetry 依赖管理器可执行文件的位置(如果已安装)。默认值“诗歌”假定可执行文件位于当前路径中。当 Poetry 可用并且工作区文件夹中有一个poetry.lock 文件时,Python 扩展使用此设置来安装包。
我在 Windows 10 pro 64bit 上并且系统上安装了 Python 3.7.6。
docker - Poetry 无法在 Docker 中安装
我有alpine:edge作为基础图像,并想在其中使用诗歌。我正在尝试这样安装它:
脚本可以正常工作,但是当我尝试实际使用它时,bash 说它没有安装:
什么会导致这个问题?
UPD:看起来 env 文件有问题:
我尝试手动将二进制文件添加到路径中,但正在运行
似乎没有效果。当我进入容器时,路径似乎没有改变。
python - 诗歌尝试将项目文件夹安装为依赖项:EnvCommandError
我正在尝试运行poetry install
命令,但出现以下错误:
我的项目目录包含.toml
文件被标记为<PROJECT_FOLDER>
(PROJECT_FOLDER_PATH
相应地,它是完整路径),它包含<subfolder>
.
我的toml
文件的一部分:
似乎诗歌试图将项目本身安装为依赖项,但由于某种我不明白的原因,它似乎是冲突的 Python 版本。我通过设置暂时解决了它python = "^3.6"
,但现在问题又回来了,因为我需要一些只接受的包python = "^3.7"
。
python - 使用 tox 运行脚本时诗歌依赖项不可用
我有一个使用诗歌和毒物的 python 项目。它有源代码、测试和脚本(juptext 笔记本)。我无法在脚本中导入开发依赖项,但可以在测试中导入。
当我遇到这个问题时,我创建了以下最小示例。起初,它不起作用,然后我摆弄它,现在它起作用了。所以我剥离了有实际问题的项目,所以除了项目名称、位置、虚拟环境和 .git 目录之外,它无法区分,但这仍然不起作用。
更新删除所有构建工件和最小示例的 virtualenv 使其再次停止工作
更新将行添加到 tox 命令仅scripts: poetry install
修复了最小示例
源代码、测试和脚本在以下布局中
这些文件要么是空的,要么如下:
foo_script.py
test_foo.py
pyproject.toml
毒物
当我运行毒药时,我得到
python - 如何使诗歌网站包在 VSCode 上可搜索?
VSCode 默认支持许多虚拟环境,并且这些环境的文件是可搜索的。但是,我正在使用Poetry,它的库似乎没有出现在搜索中。
.vscode/settings.json
我通过更改我的项目目录来手动设置我的 Python 解释器。(因为命令调色板Python: Select interpreter
也不起作用。
我想~\AppData\Local\pypoetry\Cache\virtualenvs\finance-essentials-37-64-58e2e1Bc-py3.7\Lib\site-packages
在我的命令 pelette 和代码上下文中使文件可搜索,以便我可以轻松查找库源。
我该怎么做呢?
python - 如何通过诗歌构建 C 扩展?
要构建一个由我管理的 python 项目,poetry
我需要先构建 C 扩展(相当于python setup.py build
)。poetry
能够根据这个github问题做到这一点。但对我来说,不清楚在pyproject.toml
构建时执行 C 扩展构建时要包含什么内容poetry build
?
python - 用诗歌在不同平台上安装不同版本的包
在我的项目中,我需要同时支持 Linux 和 Windows,因此我遵循了这些准则并将这些行添加到我的pyproject.toml
文件中:
(另外我尝试过os_name=='nt'
)但是当我尝试运行时poetry update
,我收到以下错误:
使用 Poetry 在不同平台上安装同一软件包的不同版本的正确方法是什么?
python - Python / pip 如何处理冲突的传递依赖?
假设我想安装a
需要包b1
和b2
. 反过来,b1
requiresc > 1.0.0
和b2
requires c < 1.0.0
。因此,同一个包不能同时满足b1
和的要求。b2
原则上/其他编程语言,这不是问题。c
可以并排安装两个版本,并确保b1
使用另一个版本而不是b2
.
但是,我不确定 pip 是否可以安装同一软件包的两个版本。我的第一个问题是: pip 可以安装一个包的两个版本吗?
我的主要问题是如何实际处理这个问题。我现在能想象的唯一方法是
- fork
b1
(orb2
) 和一个c
适用于 fork 的版本,然后上传b1_forked
到c_for_b1_forked
PyPI,或者 b1
将(或)的代码b2
直接包含在我的项目中
两者似乎都比必要的更成问题。
我试过的
所以我很确定这是 Python 查找已安装包的地方,并且只安装了一个版本(尽管*-dist-info
目录让我有点困惑)。
这篇博文表明,目前对于冲突的传递依赖没有好的解决方案。其他项目(例如诗歌)对此有帮助吗?