我正在尝试编写脚本,它应该使用 Portage API。但是 Portage python 包在 PyPi 中不可用,但即使可用也没有任何意义,因为它应该从某些具有包数据库和配置的配置系统中使用。
我尝试编写以下丑陋的代码:
[tool.poetry.dependencies]
python = "^3.6"
click = "^7.0-r1"
portage = [
{ markers = "python_version ~= '3.6' and sys_platform == 'linux'", path = "/usr/lib64/python3.6/site-packages/portage/" },
{ markers = "python_version ~= '3.7' and sys_platform == 'linux'", path = "/usr/lib64/python3.7/site-packages/portage/" },
{ markers = "python_version ~= '3.8' and sys_platform == 'linux'", path = "/usr/lib64/python3.8/site-packages/portage/" },
{ markers = "python_version ~= '3.9' and sys_platform == 'linux'", path = "/usr/lib64/python3.9/site-packages/portage/" }
]
Run Code Online (Sandbox Code Playgroud)
但这不起作用。Poetry 不会将路径目录中的代码视为 …
我目前使用下面的脚本来构建我的包并将其发布到私有 Azure Artifacts 源。在每个脚本中,我都必须运行该行source $HOME/.poetry/env,否则它找不到诗歌命令。
有没有办法消除这种重复?
完整脚本:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
strategy:
matrix:
Python38:
python.version: '3.8'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
sudo apt-get install texlive texlive-latex-extra latexmk
python -m pip install --upgrade pip
python -m pip install keyring artifacts-keyring
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
source $HOME/.poetry/env
poetry install
displayName: 'Install package and tools'
- script: |
source $HOME/.poetry/env
poetry run python -m isort -rc
poetry run python …Run Code Online (Sandbox Code Playgroud) 我正在 Raspberry pi 3b+(Lite buster 2020 年 2 月)的容器中安装 Poetry。我使用图像arm32v7/python:3.7-slim-buster。
这里是Dockerfile:
FROM arm32v7/python:3.7-slim-buster
RUN apt-get update
RUN apt-get install libssl-dev -y
RUN apt-get install libffi-dev
RUN apt-get install build-essential -y
RUN pip install poetry
RUN pip install --upgrade pip
COPY ./pyproject.toml /app/
WORKDIR /app/
RUN poetry install --no-dev
COPY ./rpiserver /app/rpiserver
RUN poetry install --no-dev
ENTRYPOINT poetry
Run Code Online (Sandbox Code Playgroud)
当 docker 运行该步骤时,poetry install --no-dev它会安装许多软件包,包括orjson需要“Rust nightly toolchain”的 (2.6.3)。所以失败了!
这是错误消息:
Writing lock file
Package operations: 33 …Run Code Online (Sandbox Code Playgroud) 如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中的开发依赖项(例如 Black、Jedi 和 flake8),而不是安装在系统范围内的依赖项?
我正在使用 Poetry 构建一些命名空间包。每个包的目录结构都是相同的:
package_bbb
pyproject.toml
aaa
bbb
myservice.py
__init__.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
使用 Poetry 我可以构建一个轮子,安装它并使用该包:
package_bbb
pyproject.toml
aaa
bbb
myservice.py
__init__.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
当我开始构建第二个包时,我的问题发生了,它需要第一个包作为依赖项。
结构保持不变:
package_ccc
pyproject.toml
aaa
ccc
mydata.py
__init__.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
在诗歌中,我将第一个添加为依赖项:
from aaa.bbb import myservice
Run Code Online (Sandbox Code Playgroud)
该软件包将(来自实习生存储库)安装在生成的 virtualenv 中并添加到 pyproject.toml 中。
第二个包生成的轮子也是完美的。第一个包将由 pip 作为依赖项安装。
问题出在开发过程中:如果我尝试(例如在 mydata.py 内部)从第一个包导入某些内容:
package_ccc
pyproject.toml
aaa
ccc
mydata.py
__init__.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
我有一个模块未找到。我认为发生这种情况是因为我有 2 个 aaa 命名空间:一个在 virtualenv 中,一个在项目根目录中。第二个优先,没有aaa.bbb。
我是否遗漏了包结构中的某些内容,或者有办法避免这种“命名空间冲突”?
非常感谢你的帮助!
我正在使用 python-poetry 来管理 python 项目中的依赖项。我想强制执行最低poetry版本以避免poetry.lock版本控制中文件的不必要更改。
build-systems我尝试在文件部分更新它pyproject.toml,但它也适用于较低版本。
有没有办法可以poetry在项目中强制执行最低版本?
如果我想开发一个仅适用于 Linux 和 macOS 的 Python 包。如何在 Python Poetry 中指定此限制?
我在 Windows 上的 conda 环境中使用诗歌。尽管我在提升的 shell 中工作(管理员权限),但我在涉及 的包(.dll例如 tensorflow 或 scipy.
conda create --name test python=3.7
conda activate test
pip install poetry
poetry add "tensorflow=1.5.1" scipy pandas
poetry install
poetry add "tensorflow=1.4.1"
poetry install
Run Code Online (Sandbox Code Playgroud)
会归还我
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied:
Run Code Online (Sandbox Code Playgroud) 注意:我刚刚开始尝试学习docker,所以我是一个初学者
目前,我正在使用诗歌和 pyenv 来制作我的 python 项目。我使用 pyenv 作为我的 python 版本,并使用诗歌来创建和管理我的 python 项目。但是,我也想使用 docker。那么,我怎样才能将这三个集成到一个Python项目中呢?
我使用的是 macOS BigSur 11.1、poetry 1.1.4 和 python 3.8.6。在我的诗歌项目中,我尝试运行poetry add grpcio,但EnvCommandError运行几分钟后会产生令人难以置信的长输出。
我怎样才能解决这个问题?
感谢您的任何帮助!